我試圖根據產品ID從我的Access數據庫中提取產品的價格。但是,嘗試執行此操作時遇到System.InvalidCastException錯誤。在Visual Studio中使用C#指定的強制轉換無效錯誤
下面是我的代碼段它源於錯誤:
protected void btnBuy_Click(object sender, EventArgs e)
string strProductId, strSQLSelect, strSQL;
decimal decUnitPrice;
strSQLSelect = "SELECT PromotionPrice FROM Products WHERE ProductId = @ProductID";
cmd = new OleDbCommand(strSQLSelect, mDB
cmd.Parameters.Add("@ProductId", OleDbType.VarChar).Value = strProductId;
object oUnitPrice = cmd.ExecuteScalar();
decUnitPrice = (decimal)oUnitPrice; //<-- Error code
,這裏是堆棧跟蹤異常代碼:
[InvalidCastException: Specified cast is not valid.]
details.btnBuy_Click(Object sender, EventArgs e) in c:\wesnpets\details.aspx.cs:60
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9690930
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +108
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3562
Visual Studio中表示,最後一行是其中之一造成了錯誤。我已經檢查了我的所有代碼以及我的數據庫,相關字段的格式已正確設置爲Decimal。但是,我仍然無法找到解決此問題的方法。
那麼有什麼我可能錯過了?希望你能爲此提出一些可能的解決方案。謝謝!
該字段在數據庫中可以爲空嗎? –
你能顯示異常消息嗎? – enkryptor