c# - C#中如何使用SqlDataAdapter更新多行

标签 c# sql-server winforms dml

我使用 SqlDataAdapterSqlCommandBuilder 对 SQL Server 数据库中的行执行 DML 事务。

我能够在数据库中添加和删除多行但更新。

这是代码:

SqlDataAdapter da = new SqlDataAdapter(@"select top 1 * from " + tableName, 
ConnectionString);
SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da);
da.Update(dt);

我正在尝试使用 AcceptChanges,但到目前为止它不起作用。

最佳答案

这是我在 C# 中通常做的事情。如果您想尝试一下。

//you may put this as a direct string or in a static class when layering
//you can pass table as hard-coded value or as a parameter
String SqlQuery = "UPDATE " +
            " [tableName] " +
            " SET [Column1ToBeUpdated]=@Column1Value," +
            " [Column2ToBeUpdated]=@Column2Value" +
            " WHERE ([ColumnxWithCondition] = @Condition)";

//add OR, AND operators as per your needs
//choose the correct SqlDbType for your column data types

public bool UpdateMyTable(String SqlQuery, Someclass obj)
 {
        SqlCommand sCommand = new SqlCommand(this.SqlQuery, (new SqlConnection(ConnectionString)));

        sCommand.Parameters.Add("@Column1Value", SqlDbType.VarChar).Value = obj.col1Value;
        sCommand.Parameters.Add("@Column2Value", SqlDbType.VarChar).Value = obj.col2Value;
        sCommand.Parameters.Add("@Condition", SqlDbType.VarChar).Value = obj.condition;

        sCommand.Connection.Open();
        var rowsAffected = sCommand.ExecuteNonQuery();
        sCommand.Connection.Close();
        return rowsAffected > 0;
 }

 //if you want to see the number, you may return rowsAffected

关于c# - C#中如何使用SqlDataAdapter更新多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30770517/

相关文章:

c# - 读取 CSS 文件会删除最后一个字符?

c# - Amazon S3 .net SDK - 在一个请求中删除多个对象

c# - 使用 LINQ 在 Winforms 上查找控件?

php - 在drupal中检测数据库连接类型

C# 应用程序在开发机器上运行,在非开发机器上失败

c# - 如何使用 .NET 获取当前季节? (夏季、冬季等...)

sql - 在由定界符分隔的列中拆分记录

sql-server - T-SQL 插入触发器 - 提取部分文本以进行插入

.net - vb 2008 网页浏览器替代品

c# - 如何从存储过程中获取 SQL 字符串结果并将其保存在 C# Windows 应用程序字符串变量中