如果 asp.net 中的列有空白值,则验证数据表不上传值

问题描述 投票:0回答:1

目前,我正在上传一个Excel文件,用于上传并以表单形式显示数据。因此,我用 basic 验证

dt
不应为空,并且计数应大于
0
。但我也想要一个验证,如果
dt
列是银行,例如:下图中的
STATE
列第一行,那么它应该提示 Excel 有空白列的警报。我怎样才能实现它。

下面是我尝试过的,但仍然排除空白值。

private void Import_To_Grid(string FilePath, string Extension, string isHDR)
    {
        string conStr = "";
        switch (Extension)
        {
            case ".xls": //Excel 97-03
                conStr = ConfigurationManager.ConnectionStrings["Excel03ConString"]
                         .ConnectionString;
                break;
            case ".xlsx": //Excel 07
                conStr = ConfigurationManager.ConnectionStrings["Excel07ConString"]
                          .ConnectionString;
                break;
        }

        conStr = String.Format(conStr, FilePath, isHDR);

        OleDbConnection connExcel = new OleDbConnection(conStr);
        OleDbCommand cmdExcel = new OleDbCommand();
        OleDbDataAdapter oda = new OleDbDataAdapter();
        DataTable dt = new DataTable();
        cmdExcel.Connection = connExcel;

        connExcel.Open();

        DataTable dtExcelSchema;
        dtExcelSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
        string SheetName = dtExcelSchema.Rows[0]["TABLE_NAME"].ToString();
        connExcel.Close();            

        connExcel.Open();
        cmdExcel.CommandText = "SELECT * From [" + SheetName + "]";
        oda.SelectCommand = cmdExcel;
        oda.Fill(dt);
        connExcel.Close();

        if (dt != null && dt.Rows.Count > 0)
        {
            if (dt.Rows.Count <= Convert.ToInt32(ConfigurationManager.AppSettings["excelUploadSize_JioAF"]))  // check for 200 records
            {
                
            }
            else
            {
                ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Max upload size is 200 rows');", true);
            }
        }
        else 
        {
            ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Excel is blank..!!');", true);
        }

    }
c# asp.net excel datatable
1个回答
0
投票

可以通过迭代列和行来实现上述要求。下面的代码将适用于单列,并让我们知道

State
列是否有空行。

bool isColumnBlank = true;

foreach (DataRow row in dt.Rows)
{
    if (!string.IsNullOrWhiteSpace(row["State"].ToString()))
    {
        isColumnBlank = false;
        break;
    }
}

if (isColumnBlank)
{
    hasBlankColumn = true;
    ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Excel has a blank column: " + column.ColumnName + "');", true);
    break; // Exit the loop if a blank column is found
}
© www.soinside.com 2019 - 2024. All rights reserved.