雖然花了點時間,但最終終於解決了。
原因:數據庫里的字段類型和ADO.NET傳給數據庫將要執行的 字段類型不匹配。
解決辦法:用了SqlParameter給SQL語句或存錯過程的參數賦值就說明下參數類型。例如我的:
===================================
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@bianma",spzd.bianma),
new SqlParameter("@zwmc", spzd.zwmc)
};
====================================
要改為:
===================================
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@bianma",SqlDbType.Char),
new SqlParameter("@zwmc", SqlDbType.Char)
};
paras[0].Value = spzd.bianma;
paras[1].Value = spzd.zwmc;
====================================
在我的情況中,數據庫字段的類型是char。如果沒有明確指明SqlParameter里參數的類型,默認是varchar。這就是導致這個異常的原因。
BTW:我無意想說char和varchar的優劣。