zoukankan
html css js c++ java
/*把更改写回数据库DataAdapter.Update*/
把更改写回数据库DataAdapter.Update
/**/
/*
把更改写回数据库DataAdapter.Update
*/
/**/
/*
Important: 这种在DataTable中进行的插入、更新和删除并不会自动写回数据库
*/
SqlDataAdapter adapter
=
new
SqlDataAdapter(strSql, strConn);
SqlCommandBuilder builder
=
new
SqlCommandBuilder(adapter);
DataSet ds
=
new
DataSet();
adapter.Fill(ds,
"
Titles
"
);
//
插入记录
DataTable table
=
ds.Tables[
"
Titles
"
];
DataRow row
=
table.NewRow();
row[
"
Title_id
"
]
=
"
JP1001
"
;
row[
"
title
"
]
=
"
programming Microsoft .NET
"
;
row[
"
price
"
]
=
59.99m
;
row[
"
ytd_sales
"
]
=
100000
;
row[
"
type
"
]
=
"
business
"
;
row[
"
pubdate
"
]
=
new
DateTime(
2002
,
5
,
1
);
table.Rows.Add(row);
//
更新数据库
adapter.Update(table);
/**/
/*
DataAdapter的Update方法检查传递给表的每一条记录,把自从上次更新
* (或自从上次调用table的AcceptChanges方法后)被插入、更新或删除的行
* 写回数据库。如果DataSet中包含了多个被修改的DataTable,就把整个DataSet
* 传给Update方法: adapter.Update(ds),所有改变会被一次性写回。
*/
/**/
/*
* 哦,还有许多演示DataAdapter.Update的用法的示例,演示了通过调用名为GetChanges
* 的方法创建一个只含有被插入、更新或删除行的新的临时DataSet或者DataTable
* ,然后把delta传递给DataAdapter.Update,如下:
* //更新数据库
* DataTable delta = table.GetChanges();
* adapter.Update(delta);
* 这种方法的确好用,但不是必需的。Update会忽略包含已修改和未修改的行的DataTable中
* 未被修改的行。
* 当要控制写回数据库中的更改的内容的顺序时,GetChanges方法发挥作用,
* 如果想在Insert前面执行Delete,以避免主键重复错误,应该这样做:
*/
//
DataRowState ---->enum System.Data.DataRowState
//
DataRowState.Deleted---->the row was deleted
//
using the row.Delete()
DataTable deletes
=
table.GetChanges(DataRowState.Deleted);
adapter.Update(deletes);
DataTable inserts
=
table.GetChanges(DataRowState.Added);
adapter.Update(inserts);
/**/
/*
GetChanges的另一个用处是,
* 当更新不是在本地执行时,把机器间的数据传输量减到最小,
* 只传递被改变的DataSet或DataTable比传递整个DataSet或DataTable更高效
*/
查看全文
相关阅读:
【读书笔记】Cracking the Code Interview(第五版中文版)
【LeetCode】贪心 greedy(共38题)
【LeetCode】树(共94题)
C++学习笔记 <multimap>
C++学习笔记 <map>
Flatten Binary Tree to Linked List <leetcode>
Sum Root to Leaf Numbers <leetcode>
Combinations <leetcode>
Populating Next Right Pointers in Each Node II <leetcode>
Pascal's Triangle II <leetcode>
原文地址:https://www.cnblogs.com/simhare/p/826466.html
最新文章
opengl 结果白屏解决方法
无法启动程序,因为计算机中丢失mfc90ud.dll的解决方案
字符串匹配:KMP算法
Ackerman函数的栈实现
归并排序
选择排序
插入排序
单向链表模板
Matlab学习笔记(一)—— 三维图形绘制
C++ STL模板
热门文章
C++ 异常机制
Segment set
9月12日JavaScript脚本语言
9月11日上午HTML有序列表、无序列表、网页的格式和布局
9月9日下午HTML样式表(宽度和高度、背景字体、对齐方式边界与边框)
9月9日HTML上午表单元素2(框架、样式表)
9月8日HTML表单元素(form、文本、按钮、选择)
【LeetCode】Recursion(共11题)
【LeetCode】排序 sort(共20题)
找工作-回复英文邮件
Copyright © 2011-2022 走看看