Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除数据集中的空行_C#_Dataset_Delete Row - Fatal编程技术网

C# 删除数据集中的空行

C# 删除数据集中的空行,c#,dataset,delete-row,C#,Dataset,Delete Row,如何删除数据集中的空行 我正在从excel电子表格中读取数据,该电子表格底部有几行空行 以下是我目前的代码: ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", VariableFile); OleDbConnection objConn = new OleDbCon

如何删除数据集中的空行

我正在从excel电子表格中读取数据,该电子表格底部有几行空行

以下是我目前的代码:

ConnectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", VariableFile);

OleDbConnection objConn = new OleDbConnection(ConnectionString);

objConn.Open();

OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Requirements$]", objConn);

OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

objAdapter1.SelectCommand = objCmdSelect;

DataSet objDataset1 = new DataSet();

objAdapter1.Fill(objDataset1);

objConn.Close();

为什么不修改您的查询以仅提取非空数据。

为什么不修改您的查询以仅提取非空数据。

我找到的每个解决方案都告诉我,要像修改Excel查询一样修改它。所以这没什么帮助。您可以从表中创建一个DataView来查看非空行。你知道这些栏目是什么吗?即使您不这样做,您仍然可以在列名上循环并为DataView构建一个筛选器字符串

string filter = "";

foreach (DataColumn dc in dt.Columns)
{
    filter += dc.ColumnName + " <> '' ";

    if (dt.Columns[dt.Columns.Count-1].ColumnName != dc.ColumnName)
    {
        filter += " AND ";
    }
}

DataView view = new DataView(dt);
view.RowFilter = filter;
dt = view.ToTable();

我找到的每个解决方案都告诉我要像修改Excel查询一样修改它。所以这没什么帮助。您可以从表中创建一个DataView来查看非空行。你知道这些栏目是什么吗?即使您不这样做,您仍然可以在列名上循环并为DataView构建一个筛选器字符串

string filter = "";

foreach (DataColumn dc in dt.Columns)
{
    filter += dc.ColumnName + " <> '' ";

    if (dt.Columns[dt.Columns.Count-1].ColumnName != dc.ColumnName)
    {
        filter += " AND ";
    }
}

DataView view = new DataView(dt);
view.RowFilter = filter;
dt = view.ToTable();

使用Linq仅包括在其任何列中具有非空/空值的行

var filteredData = sourceDataTable.AsEnumerable()
         .Where(row => row.ItemArray.Any(col => !String.IsNullOrWhiteSpace(col.ToString())))
         .ToArray();

使用Linq仅包括在其任何列中具有非空/空值的行

var filteredData = sourceDataTable.AsEnumerable()
         .Where(row => row.ItemArray.Any(col => !String.IsNullOrWhiteSpace(col.ToString())))
         .ToArray();