title: Updating Database Using Datagridview
body: <p>I can add, edit, delete database using listbox. But I want to do it using DatagridView I already bind it to my database.</p>
  
  <p>How do I add,edit,delete update my database in datagridview using codes?</p>
  
  <p>These are my codes:</p>
  
  <pre><code>namespace Icabales.Homer
  {
      public partial class Form1 : Form
  {
      SqlConnection cn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=c:\users\homer\documents\visual studio 2010\Projects\Icabales.Homer\Icabales.Homer\Database1.mdf;Integrated Security=True;User Instance=True");
      SqlCommand cmd = new SqlCommand();
      SqlDataReader dr;
      SqlDataAdapter da;
      DataTable dt = new DataTable();
      public Form1()
      {
          InitializeComponent();
      }
      private void bindgrid()
      {
          string command = "select * from info";
          da = new SqlDataAdapter(command, cn);
          da.Fill(dt);
          dataGridView1.DataSource = dt;
      }
      private void Form1_Load(object sender, EventArgs e)
      {
          // TODO: This line of code loads data into the 'database1DataSet.info' table. You can move, or remove it, as needed.
          this.infoTableAdapter.Fill(this.database1DataSet.info);
          cmd.Connection = cn;
          loadlist();
          bindgrid();
      }
  
      private void button1_Click(object sender, EventArgs e)
      {
          if (txtid.Text != "" &amp; txtname.Text != "")
          {
              cn.Open();
              cmd.CommandText = "insert into info (id,name) values ('" + txtid.Text + "' , '" + txtname.Text + "')";
              cmd.ExecuteNonQuery();
              cmd.Clone();
              MessageBox.Show("Record Inserted");
              cn.Close();
              txtid.Text = "";
              txtname.Text = "";
              loadlist();
          }
      }
      private void loadlist()
      {
          listBox1.Items.Clear();
          listBox2.Items.Clear();
          cn.Open();
          cmd.CommandText = "select * from info";
          dr = cmd.ExecuteReader();
          if (dr.HasRows)
          {
              while (dr.Read())
              {
                  listBox1.Items.Add(dr[0].ToString());
                  listBox2.Items.Add(dr[1].ToString());
              }
          }
          cn.Close();             
      }
  
      private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
      {
          ListBox l = sender as ListBox;
          if (l.SelectedIndex != -1)
          {
              listBox1.SelectedIndex = l.SelectedIndex;
              listBox2.SelectedIndex = l.SelectedIndex;
              txtid.Text = listBox1.SelectedItem.ToString();
              txtname.Text = listBox2.SelectedItem.ToString();
          }
  
      }
  
      private void button2_Click(object sender, EventArgs e)
      {
          if (txtid.Text != "" &amp; txtname.Text != "")
          {
              cn.Open();
              cmd.CommandText = "delete from info where id = '"+txtid.Text+"'and name = '"+txtname.Text+"'";
              cmd.ExecuteNonQuery();
              cn.Close();
              MessageBox.Show("Record Deleted");
              loadlist();
              txtid.Text = "";
              txtname.Text = "";
          }
      }
  
      private void button3_Click(object sender, EventArgs e)
      {
          if (txtid.Text != "" &amp; txtname.Text != "" &amp; listBox1.SelectedIndex != -1)
          {
              cn.Open();
              cmd.CommandText = "update info set id='"+txtid.Text+"',name='"+txtname.Text+"'where id='"+listBox1.SelectedItem.ToString()+"' and name='"+listBox2.SelectedItem.ToString()+"'";
              cmd.ExecuteNonQuery();
              cn.Close();
              MessageBox.Show("Record Updated");
              loadlist();
              txtid.Text = "";
              txtname.Text = "";
          }
      }
  }
  </code></pre>
  
  <p>}</p>