其中在DAL層調用存儲過程來插入數據的參數測試
SqlParameter[] parameters = {
new SqlParameter("@Contents", SqlDbType.VarChar)spa
……io
}List
當一次我插入大概7000字左右的文章時,提示以下錯誤:model
[System.Data.SqlClient.SqlException] = {"傳入的表格格式數據流(TDS)遠程過程調用(RPC)協議流不正確。參數 8 (""@Contents""): 數據類型 0xA7 的數據長度或元數據長度無效。"}數據類型
看到這個錯誤,我就鬱悶了,我已經把1萬字的文章保存成功了,可此次才7000左右,怎麼會失敗?數據
幾經測試發現了一個現象:協議
插入小於4000個漢字,或漢字大於8000的時候,沒有問題。但當漢字字符數量在4000~8000之間的時候, 存儲過程
修改以下: db
SqlParameter[] parameters = {
new SqlParameter("@Contents", SqlDbType.VarChar)
……
}
修改成:
SqlParameter[] parameters = {
new SqlParameter("@Contents", SqlDbType.VarChar,-1)
……
}
也就是,當類型爲text、VarChar(Max)時其對應的size值爲-1就能夠了。
或者定義:DbType.String
dbHelper.CreateInDbParameter("@in_Cpg_List", DbType.String, model.Cpg_List),