asp.net中執(zhí)行存儲數(shù)據(jù)設(shè)置時數(shù)據(jù)被自動截取的一種情況
發(fā)表時間:2024-06-03 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]今天在做東西的時候,發(fā)現(xiàn)一個很奇怪的問題,數(shù)據(jù)庫(SqlServer)中的字段設(shè)置的類型為ntext,但是保存的數(shù)據(jù)總是很短,開始以為在程序的某段設(shè)置了長度限制,在設(shè)置了斷點跟蹤調(diào)試發(fā)現(xiàn)穿遞的數(shù)據(jù)很正常,但是在執(zhí)行了存儲操作以后保存的內(nèi)容總是很短,數(shù)了數(shù)保存的字符個數(shù)為16個,數(shù)據(jù)庫中設(shè)置的該字段...
今天在做東西的時候,發(fā)現(xiàn)一個很奇怪的問題,數(shù)據(jù)庫(SqlServer)中的字段設(shè)置的類型為ntext,但是保存的數(shù)據(jù)總是很短,開始以為在程序的某段設(shè)置了長度限制,在設(shè)置了斷點跟蹤調(diào)試發(fā)現(xiàn)穿遞的數(shù)據(jù)很正常,但是在執(zhí)行了存儲操作以后保存的內(nèi)容總是很短,數(shù)了數(shù)保存的字符個數(shù)為16個,數(shù)據(jù)庫中設(shè)置的該字段類型ntext的長度也為16,于是想是不是數(shù)據(jù)庫的bug,就在查詢分析器里寫insert語句進行測試,結(jié)果發(fā)現(xiàn)保存的內(nèi)容很正常,這樣問題肯定在程序當中,最后檢查到在構(gòu)造SqlCommand命令對象的參數(shù)對象SqlParameter時指定的參數(shù)類型為ntext并且指定了其長度為16,寫法如下
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter(TEMPLATEID, SqlDbType.Int),
new SqlParameter("@Content", SqlDbType.NText,16)
};
把長度的限制去掉,再一測試,一切OK,呵呵,看來好多東西的概念不是很清楚是很容易造成麻煩問題的,希望這個教訓(xùn)能給我以后也遇到類似問題的朋友一點提示。