请问我通过datagridview,对查询的数据修改后,再同步回数据库;
为此,所定义的保存按钮,所用代码如下,正常的数据库接语句,在这里就不贴出来了,但对查询后的数据修改后,一点保存,修改内容随即消失,请问哪里有问题呢, 请指导谢谢
private void btnsave_Click_1(object sender, EventArgs e)
{
//SqlCommand cmd = new SqlCommand(SqlString, conn);
SqlDataAdapter sda = new SqlDataAdapter(SqlString, conn);
//sda.SelectCommand = cmd;
//SqlCommandBuilder SCB = new SqlCommandBuilder(sda);
//DataSet dset = new DataSet();
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;
//DataTable dt = (dataGridView1.DataSource as DataTable);
SqlCommandBuilder SCB = new SqlCommandBuilder(sda);
dt.GetChanges();
sda.Update(dt);
MessageBox.Show("更新成功");
End sub;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:DataBinding
,使用以上方法后仍然会自动生成新列。Visible
属性设为 false
。针对修改无法保存的问题,可能出现以下几种情况:
using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{
conn.Open();
//执行数据库操作,包括提交修改
}
dataGridView1.EndEdit(); //结束编辑状态
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da); //自动生成更新命令
da.Update(dt); //提交修改
dataGridView1.Columns[0].DataPropertyName = "id"; //假设第一列是id列
dataGridView1.Columns[1].DataPropertyName = "name"; //假设第二列是name列
//以此类推,确保每列的DataPropertyName属性都正确设置
需要根据具体情况逐一排除以上原因,找出导致无法保存修改的具体原因。