明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

asp.net中執(zhí)行存儲數(shù)據(jù)設(shè)置時數(shù)據(jù)被自動截取的一種情況

[摘要]今天在做東西的時候,發(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)能給我以后也遇到類似問題的朋友一點提示。