0

Error shown on the website. Im using asp net visual C# webform, access data source (MS access) When I click on Add to Cart button on productdetails.aspx

Line 41:         int intOrderNo = (int)Session["sOrderNo"];
Line 42:         string strUnitPrice = (string)Session["sUnitPrice"];
Line 43:         decimal decUnitPrice = decimal.Parse(strUnitPrice);

For myOrder table in Ms Access There is 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");
11
  • Kindly check the session variable values and add the full stack trace Commented Jan 20, 2014 at 4:05
  • Welcome to Stack Overflow! Almost all cases of NullReferenceException are the same. Please see "What is a NullReferenceException in .NET?" for some hints. Commented Jan 20, 2014 at 4:05
  • use Convert.toString() Commented Jan 20, 2014 at 4:07
  • Line 42: string strUnitPrice = (string)Session["sUnitPrice"]; can be Session["sUnitPrice"].ToString() Commented Jan 20, 2014 at 4:11
  • @Kayzel Moo : I see that you are trying to cast the value which is stored in a session. in this case the only reason why you get Object reference error would be because session is empty or does not exists. Commented Jan 20, 2014 at 5:40

3 Answers 3

1

Try this

Line 41:         int intOrderNo = Session["sOrderNo"] == DBNull.Value ? 0 : (int)Session["sOrderNo"];
Line 42:         string strUnitPrice = Session["sUnitPrice"] == DBNull.Value ? string.Empty : (string)Session["sUnitPrice"];

null Vs DBNull.Value

Sign up to request clarification or add additional context in comments.

4 Comments

Should i Use null or dnull.value?
use dbnull.value. refer my link. mark useful if its helped you
And spidercode the guy above uses != while u uses == , the difference is?
actually there's not a need to do dbnull for price i think?
0

Try below code :

Line 41:         int intOrderNo = Session["sOrderNo"] == null ? 0 : (int)Session["sOrderNo"];
Line 42:         string strUnitPrice = Session["sUnitPrice"] == null ? string.Empty : (string)Session["sUnitPrice"];
Line 43:         decimal decUnitPrice = string.IsNullOrWhiteSpace(strUnitPrice) ? 0 : decimal.Parse(strUnitPrice);

2 Comments

the guy below use dbnull, so which do i follow
Guys so far i think just int intOrderNo = Session["sOrderNo"] == null ? 0 : (int)Session["sOrderNo"]; WORKS haven't tried kumar dbnull below. Thanks all for help :)
0

Just check that if Session variable is Null-

 if( Session["sOrderNo"] != null && all the session variables )
{
     //Now check your condition here
}
else {
       //Perform any operation
    }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.