c# - Object reference not set to an instance of an object in delete option of my code and another error in update option of my code -


i have used following code delete , edit values in gridview, click delete shows error:

object reference not set instance of object. in line 48 i.e. con.open(); 

please me solve it. , when click on edit , insert values in shown txtboxes , click update shows error:

specified argument out of range of valid values. in line 74 of code i.e.    emailid = (textbox)gridview1.rows[e.rowindex].cells[7].findcontrol("emailid"); 

the code have used is-

using system; using system.collections.generic; using system.linq; using system.web; using system.web.ui; using system.web.ui.webcontrols; using system.data.sqlclient; using system.data;  public partial class admin_viewsalesmandetails : system.web.ui.page {     sqlconnection con;     string strconnection = "data source=hp\\sqlexpress;database=mk;integrated security=true";     sqlcommand cmd;     protected void page_load(object sender, eventargs e)     {          if (!ispostback)         {             bindgrid();         }       }      private void bindgrid()     {           using (sqlconnection con = new sqlconnection(strconnection))         {             using (sqlcommand cmd = new sqlcommand())             {                  cmd.commandtext = "select * salesman_details";                 cmd.connection = con;                   sqldatasource1.databind();                 gridview1.datasource = sqldatasource1;                 gridview1.databind();              }         }     }     protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e)     {         label empid = new label();         empid = (label)gridview1.rows[e.rowindex].cells[2].findcontrol("empid");         cmd = new sqlcommand("delete salesman_setails empid=" + empid.text + "", con);         con.open();         int k = cmd.executenonquery();         con.close();         if (k == 1)         {             response.write("<script>alert('employee deleted successfully')</script>");             bindgrid();         }         else         {             response.write("<script>alert('error occured while deleting')</script>");             bindgrid();         }     }     protected void gridview1_rowediting(object sender, gridviewediteventargs e)     {         gridview1.editindex = e.neweditindex;         bindgrid();      }     protected void gridview1_rowupdating(object sender, gridviewupdateeventargs e)     {         label empid = new label();         textbox phnno = new textbox();         textbox emailid = new textbox();         empid = (label)gridview1.rows[e.rowindex].cells[2].findcontrol("empid");         phnno = (textbox)gridview1.rows[e.rowindex].cells[5].findcontrol("phnno");         emailid = (textbox)gridview1.rows[e.rowindex].cells[7].findcontrol("emailid");         cmd = new sqlcommand("update  salesman_details set phnno='" + phnno.text + "', emailid='" + emailid.text + "' empid=" + empid.text + "", con);         con.open();         int k = cmd.executenonquery();         con.close();         if (k == 1)         {             response.write("<script>alert('employee updated successfully')</script>");             gridview1.editindex = -1;             bindgrid();          }         else         {             response.write("<script>alert('error occured while updating')</script>");             bindgrid();         }      }      protected void gridview1_rowcancelingedit(object sender, gridviewcancelediteventargs e)     {         gridview1.editindex = -1;         bindgrid();     }       protected void gridview1_pageindexchanging(object sender, gridviewpageeventargs e)     {         gridview1.pageindex = e.newpageindex;         bindgrid();     } } 

in gridview1_rowdeleting , gridview1_rowupdating haven't initialized con , trying open it.

you can either instantiate connection @ declaration or during usage in events.

public partial class admin_viewsalesmandetails : system.web.ui.page {       string strconnection = "data source=hp\\sqlexpress;database=mk;integrated security=true";       sqlconnection con = new sqlconnection(strconnection); 

or better approach instantiate within using statement in events. example.

protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e) {     label empid = new label();     empid = (label)gridview1.rows[e.rowindex].cells[2].findcontrol("empid");     cmd = new sqlcommand("delete salesman_setails empid=" + empid.text + "", con);     using( con = new sqlconnection(strconnection))     {         cmd.connection = con; //here         con.open();         int k = cmd.executenonquery();         con.close();         if (k == 1)         {             response.write("<script>alert('employee deleted successfully')</script>");             bindgrid();         }         else         {             response.write("<script>alert('error occured while deleting')</script>");             bindgrid();         }     } } 

using statement ensure dispose called on connection, (which close connection well), if exception occurs.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -