ปกติฉันจะตั้งขนาดคอลัมน์เมื่อสร้างพารามิเตอร์ใน ADO.NET
แต่ฉันจะใช้ขนาดใดถ้าคอลัมน์เป็นVARCHAR(MAX)
อย่างไร
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
ปกติฉันจะตั้งขนาดคอลัมน์เมื่อสร้างพารามิเตอร์ใน ADO.NET
แต่ฉันจะใช้ขนาดใดถ้าคอลัมน์เป็นVARCHAR(MAX)
อย่างไร
cmd.Parameters.Add("@blah", SqlDbType.VarChar, ?????).Value = blah;
คำตอบ:
ในกรณีนี้คุณใช้ -1
สำหรับพวกเราที่ไม่เห็น -1 โดย Michal Chaniewski รหัสที่สมบูรณ์:
cmd.Parameters.Add("@blah",SqlDbType.VarChar,-1).Value = "some large text";
ขนาดสูงสุดของ SqlDbType.VarChar คือ 2147483647
หากคุณจะใช้การเชื่อมต่อ oledbทั่วไปแทน sql ฉันพบว่าที่นี่ยังมีประเภทข้อมูล LongVarChar ขนาดสูงสุดของมันคือ 2147483647
cmd.Parameters.Add("@blah", OleDbType.LongVarChar, -1).Value = "very big string";
คุณไม่จำเป็นต้องผ่านพารามิเตอร์ขนาดเพียงแค่ประกาศVarchar
แล้วเข้าใจว่ามันเป็น MAX ชอบ:
cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";
หากคุณทำสิ่งนี้:
cmd.Parameters.Add("@blah",SqlDbType.VarChar).Value = "some large text";
ขนาดจะถูกนำมาจาก "ข้อความขนาดใหญ่บางส่วน" ความยาว
นี่อาจเป็นปัญหาได้เมื่อมันเป็นพารามิเตอร์เอาต์พุตคุณจะไม่ได้รับตัวอักษรกลับมาอีกแล้วจึงใส่เป็นอินพุต