首页 新闻 搜索 专区 学院

急急急!!!C#高手进(关于GetChange)

0
悬赏园豆:20 [已解决问题] 解决于 2009-07-04 15:17

DataSet ds = new DataSet();
           1// ds.ReadXml("M_Rate.xml");

           2//ds =  SqlHelper("select * from users");
            dataGridView1.DataSource = ds.Tables[0];
            ............................

............................................

..................................................................

DataTable dt = ((DataTable)dataGridView1.DataSource).GetChanges();


如果用第一句绑定数据,那么最后的dt得到的是改变的和没变的所有行
而如果是第二句绑定数据,dt得到的是改变的行.

为什么数据源是xml时得到的是所有的行呢?????????????????

 

说的详细点

问题补充: private DataSet SqlHelper(string strsql) { using (DataSet ds = new DataSet()) { string strconn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=BudgetDB.accdb;"; using (OleDbConnection conn = new OleDbConnection(strconn)) { conn.Open(); using (OleDbDataAdapter da = new OleDbDataAdapter(strsql, conn)) { da.Fill(ds); return ds; } } } xml就是xml文件啊.原来就有的. }
求教的人的主页 求教的人 | 初学一级 | 园豆:180
提问于:2009-06-19 10:37
< >
分享
最佳答案
0

在绑定之前先AcceptChanges()一下,得到的结果应该是一样的。因为在ds.ReadXml()处理后,得到的数据集的行状态是有变化的,而用SqlHelper看一下是不是你已经有先AcceptChanges()处理过了?

灵倚 | 菜鸟二级 |园豆:245 | 2009-06-19 12:39
其他回答(2)
0

  
  ds =  SqlHelper("select * from users");
  ds.ReadXml("M_Rate.xml");
 dataGridView1.DataSource = ds.Tables[0];

chenleinet | 园豆:270 (菜鸟二级) | 2009-06-19 11:41
0

问题有可能出在你的SqlHelper里,理论上应该都是全数据的。

你的SqlHelper 里是否做了特殊处理

winzheng | 园豆:8797 (大侠五级) | 2009-06-19 12:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册