作者vulurn (克難)
看板C_Sharp
標題[問題] Linq關於"字串長度必須剛好一個字元"錯誤
時間Mon Nov 28 11:20:33 2011
查過MSDN,這個錯誤似乎是個bug
例如我的sql:
table name: customer
column: cust_id; type:varchar(8)
linq code:
DataClassesDataContext dcc = new DataClassesDataContext();
//以下這段出現錯誤
CUSTOMER customer = dcc.CUSTOMER.SingleOrDefault(c =>
c.cust_id.Equals(id)); //id為登入者之session,長度為8
if(string.IsNullOrEmpty(customer.form)) //如果該欄為null(未設定過)
{
customer.form = formsrl; //formsrl為web中要給使用者選擇更改的值
}
else
{
//...
}
錯誤訊息為"字串長度必須剛好一個字元。"
(A character string length must be exactly)
查過網路似乎為一個vs2008的bug,不知道有沒有解?@@
之後是改用SqlCommand的舊方法直接下update指令結果ok
linq就一直出現這種錯誤...orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.87.140.36
推 knifehandz:VS2008 的 bug 是在於 varchar(1) 對應成 char 12/01 06:34
→ knifehandz:你的資料表設計有 varchar(1) 就有可能,解決方式是 12/01 06:35
→ knifehandz:手動改 EF 的 char 型別為 string 12/01 06:35
→ vulurn:感謝~資料表還真的是varchar(1) 12/01 13:00
→ vulurn:雖然是跟session不同欄位,不過看來也是會影響到? 12/01 13:03