Excel空字段

时间:2017-08-26 20:48:42

标签: c# asp.net excel epplus

我需要根据excel中的字段更新数据库,但我需要检查一列中一行中的5个字段是否为空,然后停止更新数据库。

                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();
                    }
                }

我有一个逻辑,当第一个字段为空或空时或不是什么意图停止更新,但我找不到一种方法来检查连续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();
                        }                                                                               
                    }
                }

1 个答案:

答案 0 :(得分:1)

只要数到5就有真正的逻辑,否则重置计数器重新开始。

   Int counter =0;
    for (){
    If (logictrue()){
    counter++;
    if(counter==5)
         Update();
    } else 
       counter=0;

    }