c# - 如何从数据表中删除空行

标签 c# excel datatable

我正在将数据从 Excel 工作表导入数据库。 Excel 工作表包含几个空行,我想删除这些空行,然后将清除的数据插入数据库。
我引用了其他代码写了一个代码,这是插入值的代码:

OleDbConnection cnn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + txtExcelFile.Text + "';Extended Properties= 'Excel 8.0;HDR=Yes;IMEX=1'");
//DataTable dt = new DataTable();

try
{
    cnn.Open();
    OleDbDataAdapter data = new OleDbDataAdapter("select * from [Customers$]", cnn);
    data.Fill(dsExcel);
    dgvCustomers.ColumnHeadersVisible = false;

    SqlConnection connection = new SqlConnection("Data Source=COMPUTER-8EB749;Initial Catalog=KITS;Integrated Security=true");
    connection.Open();
    for (int i = 0; i < dsExcel.Tables[0].Rows.Count; i++)
    {
        string ID = ds.Tables[0].Rows[i][0].ToString();
        Int16 CustID = Convert.ToInt16(ID);
        string CustName = dsExcel.Tables[0].Rows[i][1].ToString();
        string CardScheme = dsExcel.Tables[0].Rows[i][2].ToString();
        string Outlet = dsExcel.Tables[0].Rows[i][3].ToString();
        string TerminalNum = dsExcel.Tables[0].Rows[i][4].ToString();
        Int32 Terminal = Convert.ToInt32(TerminalNum);
        string Date1 = dsExcel.Tables[0].Rows[i][5].ToString();
        DateTime Date = Convert.ToDateTime(Date1);
        string Time = dsExcel.Tables[0].Rows[i][6].ToString();
        DateTime DateTime = Convert.ToDateTime(Time);
        string Amount1 = ds.Tables[0].Rows[i][7].ToString();
        double Amount = Convert.ToDouble(Amount1);

        SqlCommand com = new SqlCommand("insert into Customer(CustID,CustName,CardScheme,Outlet,TerminalNum,TranDate,TranDateTime,Amount) values ('" + CustID + "','" + CustName + "','" + CardScheme + "','" + Outlet + "','" + Terminal + "','" + Date + "','" + DateTime + "','" + Amount + "')", connection);
        com.ExecuteNonQuery();
    }
    connection.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}
finally
{
    MessageBox.Show("Data Inserted Successfully.");
}

谁能告诉我如何删除空行以便我只能插入数据?!

Excel Sheet

最佳答案

这将删除每列不包含任何内容或空白的所有行:

dataTable = dataTable.Rows
    .Cast<DataRow>()
    .Where(row => !row.ItemArray.All(field => field is DBNull || 
                                     string.IsNullOrWhiteSpace(field as string)))
    .CopyToDataTable();

关于c# - 如何从数据表中删除空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7023140/

相关文章:

c# - SQL Server 2000 中的表差异

c# - 每个匹配生命周期范围的实例,默认?

excel - 在 Excel 中输入数据时,使用从其他列获取的文本添加前缀

asp.net - 除了 View 状态之外还有其他方式存储数据源吗?

c# - 如何像 Repeater 一样运行 GridView?

c# - 在 C#/ASP.net 中取消注册一个 javascript block

r - 数据表和Excel模板

java - 通过java输出CSV

.net - 在数据源中删除的行的 DataAdapter.Fill() 行为

css - 如何隔离 PrimeFaces Widget 不受主站点 CSS 的影响