惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Spread Privacy
Spread Privacy
大猫的无限游戏
大猫的无限游戏
F
Fortinet All Blogs
M
MIT News - Artificial intelligence
G
Google Developers Blog
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
H
Help Net Security
V
Visual Studio Blog
WordPress大学
WordPress大学
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
Webroot Blog
Webroot Blog
Hugging Face - Blog
Hugging Face - Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
W
WeLiveSecurity
C
CERT Recently Published Vulnerability Notes
Y
Y Combinator Blog
S
Schneier on Security
Recent Announcements
Recent Announcements
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
宝玉的分享
宝玉的分享
T
Troy Hunt's Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
N
News and Events Feed by Topic
A
About on SuperTechFans
小众软件
小众软件
K
Kaspersky official blog
Help Net Security
Help Net Security
V2EX - 技术
V2EX - 技术
P
Proofpoint News Feed
S
Secure Thoughts
IT之家
IT之家
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
The Register - Security
The Register - Security
I
Intezer
NISL@THU
NISL@THU
GbyAI
GbyAI
P
Privacy & Cybersecurity Law Blog
T
Threatpost
C
Check Point Blog
Forbes - Security
Forbes - Security
C
Cisco Blogs
AI
AI
Recorded Future
Recorded Future
F
Full Disclosure

博客园 - 奚彧

Siverlight 导出Excel (经测试通过 Vs2010 ,silverlight5 ) 打印代码片段 部署silverlight ria 程序 备忘 刚学 silverlight 问题遇到一堆 2010 微软难道抛弃了ado.net data service openfire 安装 关于merge .net常用代码 (收藏) - 奚彧 - 博客园 碰到一个巨郁闷的情况! - 奚彧 - 博客园 关于连接池问题 删除确认按钮 - 奚彧 - 博客园 水晶报表自动插入空白行 也谈如何缩小SQL SERVER日志文件 新年第一帖,祝大家新年快乐! vs2005什么时候能出正式版 《WEB打印的相关技术分析》 web打印2 web打印 权限设置问题!(比较着急)
关于DataSet.merge 问题的答案。
奚彧 · 2006-06-13 · via 博客园 - 奚彧

代码是关于两个dataSet 分别从不同的数据源取数据,然后进行merge 后,更新其中一个数据源

cn.Open();
                SqlCommand cmd 
= new SqlCommand(sqlAllCustomers, cn);
                SqlDataAdapter adpt 
= new SqlDataAdapter(cmd);
               

                
// Add
                DataSet dsCust1 = new DataSet();
                DataSet dsCust2 
= new DataSet();
                DataSet dsTest 
= new DataSet();
                
//adpt.AcceptChangesDuringFill = false;
                
                adpt.Fill(dsCust1, 
"TABLE1");
                
//adpt.AcceptChangesDuringFill = true;
                using (SqlConnection cnTemp = new SqlConnection(cnStrTemp))
                
{
                    
//SqlConnection cnTemp = new SqlConnection(cnStrTemp);
                    cnTemp.Open();
                    SqlCommand cmdTemp 
= new SqlCommand(sqlAllCustomers, cnTemp);
                    SqlDataAdapter adptTemp 
= new SqlDataAdapter(cmdTemp);
                    adptTemp.AcceptChangesDuringFill 
= false;
                    adptTemp.Fill(dsCust2, 
"TABLE1");
                }


                
//adpt.Update(dsCust1, "TABLE1");
                dsCust1.Merge(dsCust2);
                
                
//111
                SqlCommandBuilder objBuilder = new SqlCommandBuilder(adpt);
                
                
                adpt.UpdateCommand 
= objBuilder.GetUpdateCommand();
                adpt.InsertCommand 
= objBuilder.GetInsertCommand();
                adpt.DeleteCommand 
= objBuilder.GetDeleteCommand();

                DataTable updTable 
= dsCust1.Tables[0];
                adpt.Update(updTable.Select(
null,null, DataViewRowState.Added));

其中主要是,对被合并的数据DataAdapter 属性设置为不稳定,更新的时候将取的数据改为add状态才能更新。否则DataSet 虽然merge 了其它的DataSet 表面上虽然数据已经改变了,但是其状态仍然为稳定状态,更新将失败。