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

推荐订阅源

博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
月光博客
月光博客
AI
AI
B
Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CXSECURITY Database RSS Feed - CXSecurity.com
WordPress大学
WordPress大学
GbyAI
GbyAI
L
Lohrmann on Cybersecurity
O
OpenAI News
Schneier on Security
Schneier on Security
P
Palo Alto Networks Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
W
WeLiveSecurity
L
LINUX DO - 最新话题
人人都是产品经理
人人都是产品经理
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
Arctic Wolf
Recorded Future
Recorded Future
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
G
GRAHAM CLULEY
N
Netflix TechBlog - Medium
TaoSecurity Blog
TaoSecurity Blog
C
Check Point Blog
Scott Helme
Scott Helme
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Apple Machine Learning Research
Apple Machine Learning Research
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Vercel News
Vercel News
The Hacker News
The Hacker News
Y
Y Combinator Blog
Latest news
Latest news
SecWiki News
SecWiki News
Hugging Face - Blog
Hugging Face - Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
Google DeepMind News
Google DeepMind News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
C
Cisco Blogs
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
L
LINUX DO - 热门话题

博客园 - 奚彧

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 表面上虽然数据已经改变了,但是其状态仍然为稳定状态,更新将失败。