【发布时间】:2013-06-13 03:39:39
【问题描述】:
我正在尝试为一个项目编写代码,但不断出现无效的特定转换错误。任何人都可以帮助我,因为我很难过。提前致谢。
Server Error in '/c#project' Application.
Specified cast is not valid.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidCastException: Specified cast is not valid.
Source Error:
Line 39: cmd.Parameters.Add("@ProductId", OleDbType.Char).Value = strProductId;
Line 40: object oQty = cmd.ExecuteScalar();
Line 41: int intQuantityOnHand = (int)oQty;
Line 42: mDB.Close();
Line 43: int intBuyQuantity = int.Parse(ddlQty.Items[ddlQty.SelectedIndex].ToString());
Source File: c:\Users\jacob\Desktop\c#project\ProductDetails.aspx.cs Line: 41
Stack Trace:
[InvalidCastException: Specified cast is not valid.]
ProductDetails.btnBuy_Click(Object sender, EventArgs e) in c:\Users\jacob\Desktop\c#project\ProductDetails.aspx.cs:41
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
【问题讨论】:
-
cmd.ExecuteScalar() 返回什么?你检查了吗?
-
我看不出有什么问题。尝试 int oQty = cmd.ExecuteScalar();那么您不需要将其装箱为整数
-
尝试在第 40 行放置断点并检查 ExecuteScalar 之后的 oQty 是什么。可能是抛出了sql异常并且oQty为null?你能也显示命令文本吗?
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。