使用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无法处理&gt; 1000行的事情 - 这是正确的吗?无论哪种方式,执行此操作的正确方法是什么?
答案 0 :(得分:0)
我需要构建自己的命令字符串,因为构建器不能处理超过1000行。我担心这会首先更新整个表格,但这个链接
C# DataTable Update Multiple Lines
让我放心。 (假设我也知道表名Timer
)。
TheTableName