我搜索了一些帖子,但仍无法获得它的工作。在运行时编辑datagridview并更新数据库
我用C#编写的窗口应用程序,在这里,我在DataGridView绑定到我的数据库:
public static DataSet GetDataSet(string sql)
{
using (SqlConnection cn = new SqlConnection(constr))
{
SqlDataAdapter da = new SqlDataAdapter(sql, cn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
}
}
,我绑定在另一大类的datagridview:
string sql = "select Amount, Price, Description from myTable";
ds = DbHelper.GetDataSet(sql);
dataGridView2.DataSource = ds.Tables[0];
我创建了一个按钮用户在编辑datagridview后更新数据库:
string sql = "select Amount, Price, Description from myTable";
DbHelper.UpdateDataSet(sql, ds);
MessageBox.Show("done");
public static void UpdateDataSet(string sql, DataSet ds)
{
using (SqlConnection cn = new SqlConnection(constr))
{
SqlDataAdapter da = new SqlDataAdapter(sql, cn);
da.Update(ds);
}
}
这是erro r,发生在线da.Update(ds);
:
当使用修改的行传递DataRow集合时,更新需要有效的UpdateCommand。
感谢您的帮助。
编辑 我可以得到它与这方面的工作:
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da);
da.UpdateCommand = commandBuilder.GetUpdateCommand();
但只有当我告诉在DataGridView主要为好,否则:
动态SQL生成的更新命令不支持不会返回任何关键列信息的SelectCommand。
如何克服这一点,如果我不想显示在datagridview中的关键?
你如何期望用'SELECT'语句更新数据库? – 2013-03-25 06:13:41