SQL :「傳入的表格格式數據流(TDS)遠程過程調用(RPC)協議流不正確」 錯誤

其中在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),

相關文章
相關標籤/搜索