Ema112 Ответов: 3

Как получить количество строк из таблицы данных без пробела при чтении из excel в ASP.NET с C#?


Как получить количество строк из таблицы данных без пустых строк при чтении из excel в asp.net с c#?

Я читаю данные с листа excel с помощью OledbConnection. Но пустые строки также поступают в таблицу данных. Я хочу избежать того же.

Мой код для чтения данных из excel выглядит следующим образом:

System.Data.OleDb.OleDbConnection MyConnection;
System.Data.DataSet ds;
System.Data.OleDb.OleDbDataAdapter MyCommand;
MyConnection = new System.Data.OleDb.OleDbConnection(connStr);
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
ds = new System.Data.DataSet();
MyCommand.Fill(dt);
MyConnection.Close();



ds.Tables.Add(dt);
oItem = dt.Rows.Count;


Что я уже пробовал:

Мой код для чтения данных из excel выглядит следующим образом:

System.Data.OleDb.OleDbConnection MyConnection;
System.Data.DataSet ds;
System.Data.OleDb.OleDbDataAdapter MyCommand;
MyConnection = new System.Data.OleDb.OleDbConnection(connStr);
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
ds = new System.Data.DataSet();
MyCommand.Fill(dt);
MyConnection.Close();



ds.Tables.Add(dt);
oItem = dt.Rows.Count;

3 Ответов

Рейтинг:
2

Karthik_Mahalingam

обратитесь к этому

DataTable dt = new DataTable();
        dt.Columns.Add("ID");
        dt.Columns.Add("Name");
        dt.Columns.Add("Address");
        dt.Rows.Add(null, null, DBNull.Value);
        dt.Rows.Add(1, 2, "a");
        dt.Rows.Add(12, 23, "b");

        object[] possibleNullOrEqualentValues = {null,"",DBNull.Value};

        DataTable dtTemp = dt;
        for (int i = 0; i < dtTemp.Rows.Count; i++)
        {
            DataRow currentRow = dtTemp.Rows[i];
            DataRow targetRow = dt.Rows[i];
           bool isEmptyRow =  currentRow.ItemArray.All(k => possibleNullOrEqualentValues.Contains(k));
           if (isEmptyRow)
               targetRow.Delete(); 
        }

        dt.AcceptChanges();
        int RowCount = dt.Rows.Count;


Рейтинг:
1

koolprasadd

Сначала клонируйте свой datatable и удаляйте пустые строки, а затем после того, как вы сможете считать строки
смотрите ниже фрагмент

DataTable dt1= dt.Clone();
for (int i = dt1.Rows.Count - 1; i >= 0; i--)
{
    if (dt1.Rows[i]["col1"] == DBNull.Value && dt1.Rows[i]["col2"] == DBNull.Value)
     {
        dt1.Rows[i].Delete();
     }
}
dt1.AcceptChanges();
int RowCount = dt1.Rows.Count;


Рейтинг:
0

vijeshkumarvijayan

можете ли вы сослаться на данную ссылку
c# - Как удалить пустые строки из datatable - переполнение стека[^]