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中选出的其中一行。
请大家指点迷津~谢谢!!!
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(),是创建这个表结构的空ROW吧
两个都是相同的表结构的,m_dtbSelectPerson是在m_dtbPersonList中其中几行row选出来Add进来的
这是界面,我定义了两个table,分别绑定在两个gridview中,上面是未选择的,下面是已选择的。当我选择了一个,在按查询时,是全部查询出来的,那我就要在查询出来的table中删掉已经选择的row,在绑定在上面的gridview中,才不会导致又在次出现了已经选择的联系人。
所以,该怎么解决呢?还是有更好的办法
当我选择一些联系人后,在按查询按钮时,又重新绑定了数据库到table中,这样的话,我就要在重新绑定的table中删掉在已选择联系人table中的row了。
给下面的gridview用查询里
获取上面的gridview的选择行先对下面的gridview操作:
将该行加到dt2 ,注意dt2 的null判断,然后对其数据绑定对上面的gridview数据源移除所选行,对其数据绑定
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Rows.Count; i++)
{
dr[i] = dt.Rows[i];
}
dr[i] = dt.Rows[i];这句为啥不报错啊?
清空第二个gridview的数据。clear()方法应该可以,第二个Datatable按查询的时候定义或者实例化就行了,就不会出现你说的这种情况了。 要是理解错误,还请见谅。