博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
删除DataTable中除指定行以外的行
阅读量:7107 次
发布时间:2019-06-28

本文共 3477 字,大约阅读时间需要 11 分钟。

简介:这是删除DataTable中除指定行以外的行 - .NET技术 / C#的详细页面,介绍了和c/c++,删除DataTable中除指定行以外的行 - .NET技术 / C#有关的知识,加入收藏请按键盘ctrl+D,谢谢大家的观看!要查看更多有关信息,

假设有一个DataTable的数据如下所示:
ID NAME MEMO
1 AA 1111
2 BB 2222
3 CC 3333
4 DD 4444
5 EE 5555
6 FF 6666
7 GG 7777
.. .. ....
要删除ID包含在集合(1,3,5,6,......)中以外的行,
也就是说保留ID包含在集合(1,3,5,6,......)中的行,其他的行删除.
回答 1 

------其他回答(1分)---------
dt.Rows[i].Delete()
i你知道的
------其他回答(1分)---------
DELETE FROM table WHERE id NOT IN (...) 
------其他回答(1分)---------
你可以用DataView过滤!就可以只看你要的数据!
C# code
 
private void BindDataGrid() { DataTable table = new DataTable(); // Insert code to populate a DataTable with data. // Bind grid to DataTable. dataGrid1.DataSource = table; } private void ChangeRowFilter() { DataTable gridTable = (DataTable) dataGrid1.DataSource; // Set the RowFilter to display a company names that // begin with A through I.. gridTable.DefaultView.RowFilter = "CompanyName < 'I'"; }
------其他回答(1分)---------
引用 3 楼 lzsh0622 的回复:
DELETE FROM table WHERE id NOT IN (...)
删除后 重新连接数据库
------其他回答(1分)---------
DELETE FROM table WHERE id NOT IN (1,3,5,6,......)
这个就可以
------其他回答(1分)---------
C# code
 
private void button1_Click(object sender, EventArgs e) { string[] ids="1,3,5".Split(','); DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("NAME"); dt.Columns.Add("MEMO"); dt.Rows.Add("1", "AA", "1111"); dt.Rows.Add("2", "BB", "1111"); dt.Rows.Add("3", "CC", "1111"); dt.Rows.Add("4", "DD", "1111"); dt.Rows.Add("5", "EE", "1111"); for (int i = dt.Rows.Count - 1; i >= 0; i--) { if (Array.IndexOf(ids,dt.Rows[i]["id"].ToString())>=0) { dt.Rows[i].Delete(); } } }
------其他回答(1分)---------
view.Table = DataSet1.Tables["Suppliers"];
  view.AllowDelete = true;
  view.AllowEdit = true;
  view.AllowNew = true;
  view.RowFilter = "ID NOT IN '1,2,3,4,5,6'";
------其他回答(1分)---------
C# code
 
view.Table = DataSet1.Tables["Suppliers"]; view.AllowDelete = true; view.AllowEdit = true; view.AllowNew = true; view.RowFilter = "ID NOT IN '1,2,3,4,5,6'";
我猜过去,你希望做数据过滤,那为什么不用DataView做过滤?
------其他回答(66分)---------
C# code
 
DataTable dt = new DataTable("Data"); dt.Columns.Add("Id", typeof(int)); dt.Columns.Add("Name", typeof(string)); dt.Rows.Add(1, "小三1"); dt.Rows.Add(2, "小三2"); dt.Rows.Add(3, "小三3"); dt.Rows.Add(4, "小三4"); dt.Rows.Add(5, "小三5"); dt.Rows.Add(6, "小三6"); dt.Rows.Add(7, "小三7"); //保留的行 string[] ids = { "1", "3", "5" }; // 获取删除的行集合 DataRow[] drsDel = dt.Select(string.Format("Id not in ({0})", string.Join(",", ids))); //直接在集合中删除 foreach (DataRow drDel in drsDel) { dt.Rows.Remove(drDel); }
------其他回答(1分)---------
学习,帮顶!~
------其他回答(1分)---------
帮你顶
------其他回答(11分)---------
for (int j = 0; j < myDataRowsError.Length; j++)
 {
  //m_myDataSet.Tables[m_strMyDataSource].Rows.Remove(myDataRowsError[j]);//如果用这句数据库里的数据并没有删除掉
  myDataRowsError[j].Delete();//用这句数据库里的数据才会删除掉
 }
集合内删除,这种写法就不对。 Delete()能删除也是侥幸,出错的地方没让你遇上。
------其他回答(11分)---------
"调用了Update可是Remove数据里就是没删除掉用Delete就可以,非常奇怪"
-------------
如果要Update更新数据库,要调用 Delete() 方法才行,并且之后不能调用 AcceptChanges() 方法;
-------------
MSDN:  
Remove()方法:当移除行时,该行中的所有数据都将丢失。还可以调用 DataRow 类的 Delete 方法来标记某行以供移除。调用 Remove 等同于先调用 Delete 再调用 AcceptChanges。  
------其他回答(2分)---------
C# code
 
string[] ids="1,3,5".Split(','); // 需要删除的ID号,存入数据组 for (int i = dt.Rows.Count - 1; i >= 0; i--) // 集合元素删除操作,倒序删除 { if (Array.IndexOf(ids,dt.Rows[i]["id"].ToString())>=0) // 当前id号是否属于删除范围 { dt.Rows[i].Delete(); } }
这个方法中用到: Array.IndexOf ,String.Split , 倒序的for结构.

转载于:https://www.cnblogs.com/zhangchenliang/archive/2010/08/02/1790600.html

你可能感兴趣的文章
从源码编译rpi的内核
查看>>
OAF中多语言的实现(转)
查看>>
用JQUERY为INPUT的TXT类型赋值及取值操作
查看>>
Labeling Balls(拓扑排序wa)
查看>>
001_各种网页错误代码解释(400.404.504等)
查看>>
设计模式——辛格尔顿(Singleton)
查看>>
MySQL忘记root密码的找回方法
查看>>
linux下使用tar命令
查看>>
js Dialog 去掉右上角的X关闭功能
查看>>
Spring aop 小例子demo
查看>>
Ambari修改主页面方法
查看>>
SolrJ总结
查看>>
CSS选择器的权重与优先规则
查看>>
jquery序列化form表单使用ajax提交后处理返回的json数据
查看>>
iOS设计模式 - 模板
查看>>
VSS Plugin配置FAQ(翻译)[转]
查看>>
javaSE之Object及hashcode等相关知识
查看>>
js 判断是否选中
查看>>
svn提交时强制注释
查看>>
Callable 获取线程返回值
查看>>