SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-IBPJNA2;Initial Catalog=GeometryFINAL;Integrated Security=True");
SqlCommand cmd;
SqlDataReader rdr;
int intOrderNo = (int)Session["sOrderNo"]; //error is here
String strSql = "SELECT iProductID FROM orderItemsTable WHERE iOrderNo = " + intOrderNo;
cmd = new SqlCommand(strSql, con);
回答
确保您的Session["sOrderNo"]
有一个值。看起来不存在或值不能转换为整数。
你可以做的是:
SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-IBPJNA2;Initial Catalog=GeometryFINAL;Integrated Security=True");
SqlCommand cmd;
SqlDataReader rdr;
if (Session["sOrderNo"] != null)
{
int intOrderNo = 0;
bool result = Int32.TryParse(Session["sOrderNo"], out intOrderNo);
if (result)
{
String strSql = "SELECT iProductID FROM orderItemsTable WHERE iOrderNo = " + intOrderNo;
cmd = new SqlCommand(strSql, con);
}
else
{
//values are not convertable to integer....
}
}
else
{
//your session variable doesn't exist....
}
在将会话值分配给变量orderno
时,可能有两种可能的情况
Session["sOrderNo"]
尚未初始化Session["sOrderNo"]
不包含任何价值。
所以为了处理这两种情况下最可能的方式是
int intOrderNo = 0;
if(Session["sOrderNo"]!=null)
{
intOrderNo = Convert.ToInt32(Session["sOrderNo"]);
}
此代码也可以引发异常,请改用TryParse。 –
@亚历山大希金斯在笏离开? ,'Convert.ToInt32'不会抛出nullreference异常,并且我正在处理'存在'的情况..所以它可能出错哪里呢? – Webruster
Session [“sOrderNo”] =“true”; intOrderNo = Convert.ToInt32(Session [“sOrderNo”]); –
- 1. 指定的演员表无效错误
- 2. 指定的演员表无效
- 3. 指定的演员无效
- 4. C#System.InvalidCastException:指定的演员无效
- 5. 指定的演员表无效
- 6. Linq指定的演员表无效
- 7. 指定的演员表无效
- 8. 指定的演员表对DBNULL无效
- 9. 指定的演员表无效
- 10. 指定的演员表无效 - float
- 11. 指定的演员表无效 - DataGridView
- 12. 指定的演员表无效WebBroswer
- 13. “指定的演员无效”WinForm应用程序中的错误
- 14. 指定的演员无效的DataRow值
- 15. Linq到SQL POCO方法指定的演员表无效
- 16. LINQ从SQL Server CE中选择:指定的演员表无效
- 17. LINQ指定的演员无效
- 18. c#转换器获取指定的演员表无效
- 19. 指定的演员表无效。 c#mdb数据库
- 20. 指定的演员日期无效
- 21. 指定的演员表无效调用存储过程
- 22. 登录无效指定演员表无效
- 23. 无效的演员表达?
- 24. 用复选框布尔铸造给出错误“指定的演员表无效”
- 25. 试图使用ExecuteScalar,并得到“指定的演员表无效”错误
- 26. 特定的演员表无效
- 27. 指定的演员表在预览中无效
- 28. Dapper.net,指定演员表无效。不能使用类型float
- 29. 为什么我得到“指定的演员表无效”?
- 30. 意外`指定的演员表无效.`````例外(Linq)
你要设定在错误行一个破发点,看看有什么是会话变量里面。 – Win