0
我需要根據excel中的字段更新數據庫,但我需要檢查一列中的一行中的5個字段是否爲空,然後停止更新數據庫。Excel空字段
foreach (var sheets in workbook.Worksheets)
{
SqlCommand comm = new SqlCommand(query, conn);
comm.CommandType = System.Data.CommandType.Text;
var start = sheets.Dimension.Start;
var end = sheets.Dimension.End;
for (int i = start.Row + 1; i < end.Row; i++)
{
object columnE = sheets.Cells[i, 4].Value;
string aa = columnE.ToString();
if (aa.StartsWith("E") && aa.EndsWith("ETO"))
{
comm.Parameters.AddWithValue("@columnE", columnE);
object columnB = sheets.Cells[i, 1].Value;
comm.Parameters.AddWithValue("@columnB", columnB);
}
else if (string.IsNullOrEmpty(aa) || !aa.StartsWith("E") && !aa.EndsWith("ETO"))
{
conn.Close();
}
comm.ExecuteNonQuery();
comm.Parameters.Clear();
}
}
我有一個邏輯,當第一場爲null或空或不是旨在停止更新,但我不能找到一種方法來檢查,對於連續5場。
我找到了解決方案,這裏是面向未來的人。
foreach (var sheets in workbook.Worksheets)
{
conn.Open();
result = sheets.ToString();
SqlCommand comm = new SqlCommand(query, conn);
comm.CommandType = System.Data.CommandType.Text;
var start = sheets.Dimension.Start;
var end = sheets.Dimension.End;
int counter = 0;
for (int i = start.Row + 1; i < end.Row; i++)
{
object columnE = sheets.Cells[i, 5].Value;
string aa = "";
if (columnE != null)
{
aa = columnE.ToString();
}
object columnB = sheets.Cells[i, 2].Value;
if (aa.StartsWith("E") && aa.EndsWith("ETO") && conn.State == System.Data.ConnectionState.Open)
{
comm.Parameters.AddWithValue("@columnE", columnE);
comm.Parameters.AddWithValue("@columnB", columnB);
comm.ExecuteNonQuery();
comm.Parameters.Clear();
}
if (columnE == null)
{
counter++;
}
if (counter == 5)
{
conn.Close();
}
}
}
我只是retweaked你的代碼,並得到解決方案。每次編纂不符合我增加計數器,當計數器5停止應用程序。謝謝你的提示 – Nemanja
@Nemanja如果它適合你接受未來用戶的正確答案 – lvl4fi4
我剛剛編輯了我的問題並添加了答案。這並沒有真正解決我的問題,但給了我一個提示如何做到這一點。 – Nemanja