读书人

在执行table的remove方法时出现“给定

发布时间: 2012-04-28 11:49:53 作者: rapoo

在执行table的remove方法时出现“给定的 DataRow 不在当前的 DataRowCollection 中"

C# code
           DataTable dt = m_dtbSelectPerson.Copy();                    DataRow dr = dt.NewRow();                    for (int i = 0; i < dt.Rows.Count; i++)                    {                        dr[i] = dt.Rows[i];                    }                    m_dtbPersonList.Rows.Remove(dr);                    this.m_objViewer.gridControl1.DataSource = m_dtbPersonList;                    this.m_objViewer.gridView1.BestFitColumns();                    m_dtbSelectPerson = m_dtbPersonList.Clone();                    this.m_objViewer.gridControl3.DataSource = m_dtbSelectPerson;

运行到Remove时出错,m_dtbSelectPerson是在m_dtbPersonList中选出的其中一行。
请大家指点迷津~谢谢!!!

[解决办法]
以对问题:
1、dr[i] = dt.Rows[i];
前者是具体的一个单元值,后者是一行,怎么能这样赋值!
2、m_dtbPersonList.Rows.Remove(dr);
你没有加入dr,当然在行集合中不存在!
3、m_dtbSelectPerson是在m_dtbPersonList中选出的其中一行
怎么看m_dtbSelectPerson都不是行,而是一个DataTable

好好看看MSDN,上面有详细例子。。。

[解决办法]
DataRow dr = dt.NewRow();

m_dtbPersonList.Rows.Remove(dr);

关键是这两句

你想做什么
[解决办法]
private DataTable dt2 = new DataTable()
给下面的gridview用

查询里
获取上面的gridview的选择行

先对下面的gridview操作:
将该行加到dt2 ,注意dt2 的null判断,然后对其数据绑定

对上面的gridview数据源移除所选行,对其数据绑定

读书人网 >C#

热点推荐