HELP!!!!!!!
-
hi, i've a page called dvd.aspx . it has datalist which shows the list of dvds. im also doing a shopping cart. im temporary using a linkbutton to add items into a datagrid. however, everytime i click the linkbutton to add items to cart, it says that
dr = dt.NewRow(); Object reference not set to an instance of an object.
. why? i tho i've already store it into session? I realise if i commentobjPds.DataSource = showProdDs.Tables[0].DefaultView; ....... MyDataList.DataBind();
it works, but my datalist won't be shown..static public DataTable dt; private DataRow dr; private PagedDataSource objPds; private void Page_Load(object sender, System.EventArgs e) { string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source = C:\Inetpub\wwwroot\folder\bin\db.mdb"; OleDbConnection conn = new OleDbConnection(strCon); string showSQL = "SELECT * FROM [DVD]"; OleDbDataAdapter showAdpt = new OleDbDataAdapter( showSQL, conn ); DataSet showDs = new DataSet(); showProdAdpt.Fill ( showDs, "DVD" ); //Instanciate Dataset objPds = new PagedDataSource(); objPds.DataSource = showProdDs.Tables[0].DefaultView; objPds.AllowPaging = true; objPds.PageSize = 10; int CurPage; if (Request.QueryString["Page"] != null) CurPage=Convert.ToInt32(Request.QueryString["Page"]); else CurPage=1; objPds.CurrentPageIndex = CurPage-1; lblCurrentPage.Text = "Page: " + CurPage.ToString(); if (!objPds.IsFirstPage) lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage) lnkNext.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage+1); MyDataList.DataSource = objPds; MyDataList.DataBind(); if(!IsPostBack) { MakeCart(); } private void MakeCart() { dt = new DataTable( "RentalInfo" ); dt.Columns.Add("DvdID", typeof(Int32)); dt.Columns.Add("DvdTitle", typeof(string)); dt.Columns.Add("Quantity", typeof(Int32)); Session[ "Cart" ] = dt; } private void AddToCart() { dt = (DataTable)Session[ "Cart" ] ; string dvdTitle = "lala"; int item = 1234; dr = dt.NewRow(); dr["DvdID"] = item; dr["DvdTitle"] = dvdTitle; dr["Quantity"] = 1; dt.Rows.Add(dr); Session[ "Cart" ] = dt; dg.DataSource = dt; dg.DataBind(); } private void LinkButton1_Click(object sender, System.EventArgs e) { AddToCart(); }
Chris -
hi, i've a page called dvd.aspx . it has datalist which shows the list of dvds. im also doing a shopping cart. im temporary using a linkbutton to add items into a datagrid. however, everytime i click the linkbutton to add items to cart, it says that
dr = dt.NewRow(); Object reference not set to an instance of an object.
. why? i tho i've already store it into session? I realise if i commentobjPds.DataSource = showProdDs.Tables[0].DefaultView; ....... MyDataList.DataBind();
it works, but my datalist won't be shown..static public DataTable dt; private DataRow dr; private PagedDataSource objPds; private void Page_Load(object sender, System.EventArgs e) { string strCon = @"Provider=Microsoft.Jet.OLEDB.4.0;" + @"Data source = C:\Inetpub\wwwroot\folder\bin\db.mdb"; OleDbConnection conn = new OleDbConnection(strCon); string showSQL = "SELECT * FROM [DVD]"; OleDbDataAdapter showAdpt = new OleDbDataAdapter( showSQL, conn ); DataSet showDs = new DataSet(); showProdAdpt.Fill ( showDs, "DVD" ); //Instanciate Dataset objPds = new PagedDataSource(); objPds.DataSource = showProdDs.Tables[0].DefaultView; objPds.AllowPaging = true; objPds.PageSize = 10; int CurPage; if (Request.QueryString["Page"] != null) CurPage=Convert.ToInt32(Request.QueryString["Page"]); else CurPage=1; objPds.CurrentPageIndex = CurPage-1; lblCurrentPage.Text = "Page: " + CurPage.ToString(); if (!objPds.IsFirstPage) lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage) lnkNext.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage+1); MyDataList.DataSource = objPds; MyDataList.DataBind(); if(!IsPostBack) { MakeCart(); } private void MakeCart() { dt = new DataTable( "RentalInfo" ); dt.Columns.Add("DvdID", typeof(Int32)); dt.Columns.Add("DvdTitle", typeof(string)); dt.Columns.Add("Quantity", typeof(Int32)); Session[ "Cart" ] = dt; } private void AddToCart() { dt = (DataTable)Session[ "Cart" ] ; string dvdTitle = "lala"; int item = 1234; dr = dt.NewRow(); dr["DvdID"] = item; dr["DvdTitle"] = dvdTitle; dr["Quantity"] = 1; dt.Rows.Add(dr); Session[ "Cart" ] = dt; dg.DataSource = dt; dg.DataBind(); } private void LinkButton1_Click(object sender, System.EventArgs e) { AddToCart(); }
Chrishey, i manage to solve it. some database problem.. cant put it in bin..very weird... Chris