asp.net 里出現“不存在從對象類型xx 到已知的托管提供程序本機類型的映射”


雖然花了點時間,但最終終於解決了。
原因:數據庫里的字段類型和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的優劣。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM