我从读SQL命令生成器类http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.aspx ,我发现我可以使用SELECT和UPDATE命令显示更新的数据集/数据库中完成。
SQL命令生成器的概念是明确的,如果我使用单一数据集,但如果我想使用两个不同的数据集?
场景:我读从数据库值到一个集DS1; 这是分配给SQL适配器和SQL命令生成器。 现在,我从DS1仅读取选定的值,并存储到第二数据集DS2; 未分配给SQL数据适配器和SQL命令生成器。
我很关心,如果我更新的DS2是否会更新数据库或没有任何数据。 另外,我应该如何使用SQL命令生成器和SQL适配器它做。
//主要数据集
ds = new ProductDataSet();
command = new SqlCommand(
"SELECT no, name, price, cost, dept FROM PRODUCTS", connection);
adapter = new SqlDataAdapter();
adapter.SelectCommand = command;
adapter.Fill(ds, "table");
主要数据集是填补的形式加载事件。 用户将进入项目没有他所选择的这将是从主DS和保存/显示到第二DS(DS第二不与任何适配器或命令生成器连接现在)搜索。 对于如; 第二DS有3项。
现在说用户更新2日DS就会自动更新数据库并显示在网格的任何信息。
//第二DS2更新代码
for (int i = 0; i < ds2.Tables[0].Rows.Count; i++)
{
string item = ds2.Tables[0].Rows[i][0].ToString();
command = new SqlCommand("UPDATE PRODUCTS SET " + _colName + " = '" + _newValue + "'" + "WHERE ITEM_NO = '" + item + "'", Class1.conn);
datagrid.DataSource = ds2.Tables[0];
}
根据你的建议,如果我加入/宣称在上面的代码适配器/构建它不工作。 我收到表映射错误。