【发布时间】:2015-12-30 18:13:08
【问题描述】:
使用 C#,SQL Server 2016 - 尝试编写一种方法来更新数据集中的每条记录 - 将单个字段更新为新值 - 使用 DataAdapter 对象,并收到以下错误消息:
不返回任何基表信息的 SelectCommand 不支持动态 SQL 生成。
这是我的代码(包含DataSet TheDS、SQLDataAdapter TheAdapter 和DataTable TheDataTable 的类的方法):
public void updateDSField<T>(string fieldName, T newVal)
{
// Updates field in dataset
SqlCommandBuilder builder = new SqlCommandBuilder(TheAdapter);
var col = TheDataTable.Columns[fieldName];
foreach (DataRow row in TheDataTable.Rows) row[col] = newVal;
TheAdapter.UpdateCommand = builder.GetUpdateCommand();
TheAdapter.Update(TheDS);
}
我读到一些关于 SqlCommandBuilder 无法处理 >1000 行的信息 - 对吗?无论哪种方式,执行此操作的正确方法是什么?
【问题讨论】:
-
真的不清楚你想在这里做什么。
-
@Rahul - 编辑了帖子;希望这更清楚一点。
标签: c# sql-server sqlconnection