C#+ Database Update Through The Datagrid View+ Windows Forms+ Very Urgent

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • radhikabista
    New Member
    • Feb 2008
    • 7

    C#+ Database Update Through The Datagrid View+ Windows Forms+ Very Urgent

    hey friends , i m not being able to save the updates in datagrid view when i press buttonsave_ gridview i have a class customer with two methods one to get the dataset and other to update database:

    i dont know what is the problem with my code.
    i always get UPDATE syntax run time error, as i press button_save_gro d view :
    please help me.
    my code goes like this:

    Code:
    public class customer
    {
      // private static string strConn;
    
            private static DataTable ds;
      
    
       public  DataTable getdataset(string fname, DataGridView dg)
       {
            OleDbConnection con = new OleDbConnection(@"provider= Microsoft.Jet.OLEDb.4.0; Data Source = D:\My Documents\Visual Studio 2005\Projects\db2.mdb");
            con.Open();
    
            OleDbDataAdapter thisadapter1 = new OleDbDataAdapter("Select * from tbl_client where fname= '" + fname + "'", con);
            //OleDbCommandBuilder cd = new OleDbCommandBuilder(thisadapter1);
            ds = new DataTable();
            thisadapter1.Fill(ds);
    
            dg.BringToFront();
            dg.Visible = true;
            BindingSource bsource = new BindingSource();
            bsource.DataSource = ds;
            dg.DataSource = bsource;
            dg.Columns[0].Visible = false;
            dg.Columns[1].Visible = false;
            dg.Columns[2].HeaderText = "Fname";
            dg.Columns[2].Width = 45;
            dg.Columns[3].HeaderText = "Lname";
            dg.Columns[3].Width = 45;
            dg.Columns[5].HeaderText = "Gender";
            dg.Columns[5].Width = 46;
            dg.Columns[6].HeaderText = "Address";
            dg.Columns[6].Width = 48;
            dg.Columns[4].Visible = false;
            dg.Columns[7].HeaderText = "Phone";
            dg.Columns[7].Width = 45;
            dg.Columns[8].HeaderText = "Mobile";
            dg.Columns[8].Width = 45;
            dg.Columns[9].HeaderText = "Email";
            dg.Columns[9].Width = 45;
            dg.Columns[10].HeaderText = "Project_ID";
            dg.Columns[10].Width = 55;
            dg.Columns[11].HeaderText = "Visit Date";
            dg.Columns[11].Width = 55;
            dg.Columns[12].HeaderText = "Agent";
            dg.Columns[12].Width = 45;
            dg.Columns[13].HeaderText = "FeedBack";
            dg.Columns[14].HeaderText = "Remarks";
            string feedback = "FeedBack";
            dg.Columns[13].HeaderText = feedback;
    
            return ds;
                                       
       }
        
    
      public int update()
       {
          OleDbConnection con = new OleDbConnection(@"provider= Microsoft.Jet.OLEDb.4.0; Data Source = D:\My Documents\Visual Studio 2005\Projects\db2.mdb");
          con.Open();
    
         string sqlUpdate;
          sqlUpdate = "Update tbl_client Set date= @p2, fname=@p3, lname= @p4, mname= @p5, gender= @p6, address= @p7, phone= @p8, mobile=@p9, email=@p10, project_id= @p11, visit_date= @p12, agent= @p13, feetdback1= @p14, remarks= @p15 Where client_id= '@p1'";
          OleDbParameter[] pUpdate = new OleDbParameter[15];
              
    
          pUpdate[0] = new OleDbParameter("@p1", OleDbType.VarChar, 40,"client_id");
          pUpdate[1] = new OleDbParameter("@p2", OleDbType.DBDate, 30, "date");
          pUpdate[2] = new OleDbParameter("@p3", OleDbType.VarChar, 40,"fname");
          pUpdate[3] = new OleDbParameter("@p4", OleDbType.VarChar, 20,"lname");
          pUpdate[4] = new OleDbParameter("@p5", OleDbType.VarChar, 20,"mname");
          pUpdate[5] = new OleDbParameter("@p6", OleDbType.VarChar, 40, "gender");
          pUpdate[6] = new OleDbParameter("@p7", OleDbType.VarChar, 40, "address");
          pUpdate[7] = new OleDbParameter("@p8", OleDbType.Numeric, 9, "phone");
          pUpdate[8] = new OleDbParameter("@p9", OleDbType.Numeric, 9, "mobile");
          pUpdate[9] = new OleDbParameter("@p10", OleDbType.VarChar, 40, "email");
          pUpdate[10] = new OleDbParameter("@p11", OleDbType.VarChar, 40, "project_id");
          pUpdate[11] = new OleDbParameter("@p12", OleDbType.Date, 40, "visit_date");
          pUpdate[12] = new OleDbParameter("@p13", OleDbType.VarChar, 40, "agent");
          pUpdate[13] = new OleDbParameter("@p14", OleDbType.VarChar, 40, "feedback1");
          pUpdate[14] = new OleDbParameter("@p15", OleDbType.VarChar, 30, "remarks");
        
          OleDbCommand cmdUpdate = new OleDbCommand(sqlUpdate,con);
         // cmdUpdate.Parameters.AddRange(pUpdate);
         
    
          OleDbDataAdapter da = new OleDbDataAdapter();
          da.UpdateCommand  = cmdUpdate;
          int i=da.Update(ds);
          ds.AcceptChanges();
           if(i>0)
           {
           MessageBox.Show("database updated");
         }
         return i;
        }
    
       
     }
    thanks in advance
    Radhika
  • kenobewan
    Recognized Expert Specialist
    • Dec 2006
    • 4871

    #2
    This wouldn't have something to do with the client_id. Why is the parameter is sngle quotes and why isn't it an integer?

    Comment

    Working...