|
今天在做東西的時(shí)候,發(fā)現(xiàn)一個(gè)很奇怪的問題,數(shù)據(jù)庫(SqlServer)中的字段設(shè)置的類型為ntext,但是保存的數(shù)據(jù)總是很短,開始以為在程序的某段設(shè)置了長(zhǎng)度限制,在設(shè)置了斷點(diǎn)跟蹤調(diào)試發(fā)現(xiàn)穿遞的數(shù)據(jù)很正常,但是在執(zhí)行了存儲(chǔ)操作以后保存的內(nèi)容總是很短,數(shù)了數(shù)保存的字符個(gè)數(shù)為16個(gè),數(shù)據(jù)庫中設(shè)置的該字段類型ntext的長(zhǎng)度也為16,于是想是不是數(shù)據(jù)庫的bug,就在查詢分析器里寫insert語句進(jìn)行測(cè)試,結(jié)果發(fā)現(xiàn)保存的內(nèi)容很正常,這樣問題肯定在程序當(dāng)中,最后檢查到在構(gòu)造SqlCommand命令對(duì)象的參數(shù)對(duì)象SqlParameter時(shí)指定的參數(shù)類型為ntext并且指定了其長(zhǎng)度為16,寫法如下
SqlParameter[] parms = new SqlParameter[] {
new SqlParameter(TEMPLATEID, SqlDbType.Int),
new SqlParameter("@Content", SqlDbType.NText,16)
};
把長(zhǎng)度的限制去掉,再一測(cè)試,一切OK,呵呵,看來好多東西的概念不是很清楚是很容易造成麻煩問題的,希望這個(gè)教訓(xùn)能給我以后也遇到類似問題的朋友一點(diǎn)提示。
AspNet技術(shù):asp.net中執(zhí)行存儲(chǔ)數(shù)據(jù)操作時(shí)數(shù)據(jù)被自動(dòng)截取的一種情況,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。