怎样修改数据库中的数据

怎样修改数据库中的数据,第1张

1、首先打开SQL Server Management管理工具,使用sql语句创建一张测试表。

2、在测试表中,插入3条测试数据。

3、使用一条语句批量修改整个表的数据。

4、使用一条语句批量修改指定条数的记录。

5、使用一条语句批量修改这三条数据(按条件修改值)。

6、使用一条语句批量修改数据,使用where和case when。

使用 DataAdapter 更新数据源

需要注意:

a)如果 SelectCommand 返回 OUTER JOIN 的结果,则 DataAdapter 不会为生成的 DataTable 设置 PrimaryKey 值。您必须自己定义PrimaryKey 以确保正确解析重复行.

b)如果对 DataSet、DataTable 或 DataRow 调用 AcceptChanges,则将使 DataRow 的所有 Original 值都将被重写为该 DataRow 的 Current 值。如果已修改将该行标识为唯一行的字段值,那么当调用 AcceptChanges 后,Original 值将不再匹配数据源中的值。

看看下面例子:

// Assumes connection is a valid SqlConnection.

SqlDataAdapter dataAdpater = new SqlDataAdapter(

"SELECT CategoryID, CategoryName FROM Categories", connection)

dataAdpater.UpdateCommand = new SqlCommand(

"UPDATE Categories SET CategoryName = @CategoryName " +

"WHERE CategoryID = @CategoryID" , connection)

dataAdpater.UpdateCommand.Parameters.Add(

"@CategoryName", SqlDbType.NVarChar, 15, "CategoryName")

SqlParameter parameter = dataAdpater.UpdateCommand.Parameters.Add(

"@CategoryID", SqlDbType.Int)

parameter.SourceColumn = "CategoryID"

parameter.SourceVersion = DataRowVersion.Original

DataSet dataSet = new DataSet()

dataAdpater.Fill(dataSet, "Categories")

DataRow row = dataSet.Tables["Categories"].Rows[0]

row ["CategoryName"] = "New Category"

dataAdpater.Update(dataSet, "Categories")

插入、更新和删除的排序

在许多情况下,以何种顺序向数据源发送通过 DataSet 作出的更改是相当重要的。

例如,如果已更新现有行的主键值并且添加了具有新主键值的新行,则务必要在处理插入之前处理更新。

可以使用 DataTable 的 Select 方法来返回仅引用具有特定 RowState 的 DataRow 数组。然后可以将返回的 DataRow 数组传递到 DataAdapter 的 Update 方法来处理已修改的行。通过指定要更新的行的子集,可以控制处理插入、更新和删除的顺序。

示例如下:DataTable table = dataSet.Tables["Customers"]

// First process deletes.

adapter.Update(table.Select(null, null, DataViewRowState.Deleted))

// Next process updates.

adapter.Update(table.Select(null, null,

DataViewRowState.ModifiedCurrent))

// Finally, process inserts.

adapter.Update(table.Select(null, null, DataViewRowState.Added))


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10827886.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存