เมื่อฉันกำลังทำอะไรบางอย่างวันนี้ ฉันค้นพบปัญหาที่แปลกมาก ประเภทการตั้งค่าฟิลด์ในฐานข้อมูล (SqlServer) เป็น ntext แต่ข้อมูลที่บันทึกไว้จะสั้นมากเสมอ ในตอนแรกฉันคิดว่ามีการจำกัดความยาวในบางส่วนของ โปรแกรม หลังจากตั้งค่าหลังจากการติดตามเบรกพอยต์และการดีบักฉันพบว่าข้อมูลที่ส่งเป็นเรื่องปกติ แต่หลังจากดำเนินการจัดเก็บเนื้อหาที่บันทึกไว้จะสั้นมากเสมอ ntext ที่ตั้งค่าไว้ในฐานข้อมูลก็เป็น 16 เหมือนกัน ดังนั้นฉันคิดว่ามันเป็นจุดบกพร่องในฐานข้อมูล ดังนั้นฉันจึงเขียนคำสั่งแทรกในตัววิเคราะห์แบบสอบถามเพื่อทดสอบ ปรากฎว่าเนื้อหาที่บันทึกไว้เป็นเรื่องปกติ ดังนั้นปัญหาจึงต้องเกิดขึ้น อยู่ในโปรแกรม ในที่สุด ฉันพบว่าวัตถุพารามิเตอร์ SqlParameter กำลังสร้างวัตถุคำสั่ง SqlCommand ประเภทพารามิเตอร์ที่ระบุคือ ntext และระบุความยาวเป็น 16 วิธีเขียนเป็นดังนี้
SqlParameter[] parms = new SqlParameter[] {
SqlParameter ใหม่ (TEMPLATEID, SqlDbType.Int)
ใหม่ SqlParameter("@Content", SqlDbType.NText,16)
};
ลบขีดจำกัดความยาวออกแล้วทดสอบใหม่อีกครั้ง 555 ดูเหมือนว่าแนวคิดหลายๆ อย่างจะไม่ชัดเจนและอาจทำให้เกิดปัญหาได้ง่ายๆ อนาคต