且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如果列中的几列空白,如何从数据表中删除行?

更新时间:2023-02-02 20:48:14

一个简单的解决方案可能就是在任何移除时调整行数和索引。



试试这个:



An easy solution may be to just adjust your row count and index on any removal.

Try this:

int rowcount = datatabletest.Rows.Count;

             for (int i = 0; i < rowcount; i++)
             {
                 if (datatabletest.Rows[i]["Mcolumn1"].ToString().Trim() == "" || dtExport.Rows[i]["column2"].ToString().Trim() == "")
                 {
                    datatabletest.Rows.Remove(datatabletest.Rows[i]);
                    rowcount--;
                    i--;
                 }
             }


您好,

查看以下代码,您可以使用对DataTable的LINQ查询 [ ^ ]。

Hi,
Review below code, where you can get result using LINQ query on a DataTable[^].
DataTable datatabletest = new DataTable();
DataTable dtNewTableTest = new DataTable();

var vDataTable = from vRow in datatabletest.AsEnumerable()
             where vRow.Field<string>("Column1") != "" || vRow.Field<string>("Column2") != ""
             select vRow;

dtNewTableTest = vDataTable.CopyToDataTable();



AsEnumerable()返回的IEnumerable&LT;&的DataRow GT; 。如果您需要将 IEnumerable< DataRow> 转换为 DataTable ,请使用 CopyToDataTable() extension。


AsEnumerable() returns IEnumerable<DataRow>. If you need to convert IEnumerable<DataRow> to a DataTable, use the CopyToDataTable() extension.


您好,

您可以从选择查询本身中删除列。我认为这会更好。请试试。
Hi,
You can remove the columns from the selection query itself. That will be better I think. Please try it.