AddOutParameter引发类型问题
?????????
?1Database?db?=?DatabaseFactory.CreateDatabase(connString);?2??????????DbCommand?dbCommand?=?db.GetStoredProcCommand(sp);?
?3
?4??????????db.AddOutParameter(dbCommand,?"@RetCode",?DbType.String,?4);??<---這里總是報錯,類型轉換有問題
?5??????????db.AddInParameter(dbCommand,?"@Room",?DbType.Int32,?XXXX);
?6
?7
?8??????????db.ExecuteNonQuery(dbCommand);?
?9
10??????????return?db.GetParameterValue(dbCommand,?"@RetCode").ToString();?
11
??? 存儲過程中有一個輸出參數 varchar(4)
??? 用企業庫(Enterprise Library - June 2005)來調用這個存儲過程,其中有一行代碼如下:
??? db.AddOutParameter(dbCommand, "@RetCode", DbType.String, 4);?
??? 那哪里出現問題了呢?
??? Google半天結果,原因也許是DbType.String 引出的原因。
??? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatadbtypeclasstopic.asp
??? DbType.String?
??? A type representing Unicode character strings.
??? DbType.AnsiString
??? A variable-length stream of non-Unicode characters ranging between 1 and 8,000 characters.
??? 如果你的參數類型是 varchar 你應該用 DbType.AnsiString ,如果是 nvarchar 應該用 DbType.String。
??? 不過由于這個原因拋出 “當前命令發生了嚴重錯誤。應放棄任何可能產生的結果。 ”
?? “常規網絡錯誤。請檢查您的網絡文檔。 ” 這樣的異常,則太容易誤導尋
?? 我即改為:??
?? SqlParameter sqlParameter= new SqlParameter("@RetCode",SqlDbType.varchar,4);
??? 結果OK
轉載于:https://www.cnblogs.com/RuiLei/archive/2008/04/18/1160621.html
總結
以上是生活随笔為你收集整理的AddOutParameter引发类型问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TP-Link TL-WR2041+ 无
- 下一篇: 开始做在线拍照功能了