【发布时间】:2014-01-20 04:03:00
【问题描述】:
网站上显示的错误。我使用 asp net visual C# webform,访问数据源(MS 访问)当我单击 productdetails.aspx 上的添加到购物车按钮时
Line 41: int intOrderNo = (int)Session["sOrderNo"];
Line 42: string strUnitPrice = (string)Session["sUnitPrice"];
Line 43: decimal decUnitPrice = decimal.Parse(strUnitPrice);
Ms Access 中的 myOrder 表 有oOrderNo、oDate、oUserName、oPaymentMode、oStatus,
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
// test to remind customer to login first
if ((string)Session["sFlag"]!="T")
{
Type csType = this.GetType();
ClientScript.RegisterStartupScript(csType, "Error", scriptErrorLogin);
}
// Connect to database
OleDbConnection mDB = new OleDbConnection();
mDB.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0;Data source=" + Server.MapPath("~/App_Data/webBase.accdb");
mDB.Open();
OleDbCommand cmd;
DetailsViewRow row0 = DetailsView1.Rows[0];
string strProductID = row0.Cells[1].Text;
mDB.Close();
// save as session variables
Session["sProductID"] = strProductID;
DetailsViewRow row4 = DetailsView1.Rows[4];
Session["sUnitPrice"] = row4.Cells[1].Text;
int intOrderNo = (int)Session["sOrderNo"];
string strUnitPrice = (string)Session["sUnitPrice"];
decimal decUnitPrice = decimal.Parse(strUnitPrice);
string strSQL = "INSERT INTO orderItems(uOrderNo, uProductID, uUnitPrice)" + "VALUES(@eOrderNo, @eProductID, @eUnitPrice)";
cmd = new OleDbCommand(strSQL, mDB);
cmd.Parameters.AddWithValue("@eOrderNo", intOrderNo);
cmd.Parameters.AddWithValue("@eProductID", strProductID);
cmd.Parameters.AddWithValue("@eUnitPrice", decUnitPrice);
mDB.Open();
cmd.ExecuteNonQuery();
mDB.Close();
Response.Redirect("ShoppingCart.aspx");
【问题讨论】:
-
请检查会话变量值并添加完整的堆栈跟踪
-
欢迎来到 Stack Overflow!几乎所有
NullReferenceException的情况都是一样的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。 -
使用 Convert.toString()
-
Line 42: string strUnitPrice = (string)Session["sUnitPrice"];可以是Session["sUnitPrice"].ToString() -
@Kayzel Moo :我看到您正在尝试转换存储在会话中的值。在这种情况下,您收到对象引用错误的唯一原因是会话为空或不存在。
标签: c# asp.net session ms-access nullreferenceexception