【发布时间】:2011-08-05 11:50:04
【问题描述】:
我在以下方面遇到了一些困难:我有一个数据集,当gridView 中的值发生更改时,我想用它来更新数据库。数据集来自以下方法:
public static DataSet Display_all_members()
{
ds = new DataSet();
try
{
string query = "SELECT date_to, last_name ,first_name , member_pay FROM Member ";
conS.Open();
adapter = new SqlDataAdapter(query, conS);
adapter.Fill(ds, "To_display");
}
catch (Exception r)
{}
finally
{
conS.Close();
}
return ds;
}
以我做的形式
ds2 = DAL.Display_all_members ();
dataGridView1.DataSource = ds2;
dataGridView1.DataMember = "To_display";
现在我开始更新,并在表单中执行以下操作
if (ds2.HasChanges() == true)
{
DAL.update(ds2);
}
在方法中
public static void update(DataSet ki)
{
SqlCommandBuilder n = new SqlCommandBuilder(da);
da.Update(ds);
}
而且它不起作用。有什么问题? 这是错误:更新无法找到 TableMapping['Table'] 或 DataTable 'Table'。
【问题讨论】:
-
1) 您并没有真正使用 CommandBuilder,2) 您没有包含主键,3) 您可能需要将“To_display”传递给更新。
-
你可以请更新我的问题,谢谢
-
您能否发布您用于填充数据集的实际 SQL。