SqlDataAdapter更新出错

时间:2015-12-30 18:13:08

标签: c# sql-server sqlconnection

使用C#,SQL Server 2016 - 尝试使用DataAdapter对象编写一个方法来更新数据集中的每个记录 - 单个字段到新值 - 并收到以下错误消息:

  

对于不返回任何基表信息的SelectCommand,不支持动态SQL生成。

以下是我的代码(包含DataSet TheDSSQLDataAdapter TheAdapterDataTable 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行的事情 - 这是正确的吗?无论哪种方式,执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我需要构建自己的命令字符串,因为构建器不能处理超过1000行。我担心这会首先更新整个表格,但这个链接

C# DataTable Update Multiple Lines

让我放心。 (假设我也知道表名Timer)。

TheTableName