如何在datagridview中发生更改时更新数据库

时间:2012-01-17 15:42:06

标签: c# winforms data-binding datagridview

我有问题要问。

我想通过在datagridview中进行更改来更新数据库后端的表。 DataGridView更改应该反映到数据库中。

我怎样才能实现它?

谢谢...

代码:

SqlCommand command;
            if (con.State == ConnectionState.Closed)
                con.Open();

            string updateQuery = @"UPDATE Hucre set VericiKB=@VericiKB Where OrtamKB=@OrtamKimlikBilgisi and HucreKB=@HucreKB";
            command = new SqlCommand(updateQuery, con);

            command.Parameters.Add("@VericiKB", SqlDbType.Int, 50, "VericiKB");
            SqlParameter param1 = command.Parameters.Add("@HucreKB", SqlDbType.Int, 50, "HucreKB");
            SqlParameter param2 = command.Parameters.Add("@OrtamKB", SqlDbType.Int, 50, "OrtamKB");

            param1.SourceVersion = DataRowVersion.Original;
            param2.SourceVersion = DataRowVersion.Original;

            da.UpdateCommand = command;

2 个答案:

答案 0 :(得分:0)

只需像

一样添加数据绑定
this.domainUpDown1.DataBindings.Add("Text", _user, "Active", true);

此示例适用于Entity Framework。对于EF,您必须致电

_repository.UnitOfWork.SaveChanges()

关闭表单之前,或更改值

之后

答案 1 :(得分:0)

da.UpDateCommand = command; ..的位置或内容是什么? 在那个

通过包装Try Catch {}块

来重构您的代码
SqlCommand command = null;
try
{
  if (con.State == ConnectionState.Closed)
  {
      con.Open();
  }

  string updateQuery = @"UPDATE Hucre set VericiKB=@VericiKB 
         WHERE OrtamKB=@OrtamKimlikBilgisi and HucreKB=@HucreKB";
  command = new SqlCommand(updateQuery, con);
  command.Parameters.AddWithValue("@VericiKB", "VericiKB");//pass a variable here 
  SqlParameter param1 = command.Parameters.AddWithValue("@HucreKB", "HucreKB");//pass a variable here
  SqlParameter param2 = command.Parameters.AddWithValue("@OrtamKB", "OrtamKB");//pass a variable here
  param1.SourceVersion = DataRowVersion.Original;
  param2.SourceVersion = DataRowVersion.Original;
  //what is this ..??? da.UpdateCommand = command;
  command.ExecuteNonQuery;
 }
 catch (Exception e)
 {
    //Write or trap your exception here..
 }

//完成后释放SQLCommand对象