2014-01-22 4 views
1

Я хочу, чтобы мой первый столбец моего datagrid не был пустым. Поэтому я создал эту проверку, если строка является пустой или пустой.String null или пусто datagrid

private void provjeri_unose() 
    { 
     string šifra = "šifra"; 
     for (int t = 0; t < dataGridView1.Rows.Count; t++) 
     { 
      šifra = Convert.ToString(dataGridView1.Rows[t].Cells[0].Value); 
     } 
     Proizvod.Šifra = šifra; 
     if (string.IsNullOrEmpty(Proizvod.Šifra)) 
     { 
      MessageBox.Show("Šifra mora biti unesena"); 
     } 
    } 

я введите значение в DataGrid в первом столбце, но он по-прежнему показывает MessageBox, который должен быть показан только если данные не введены в первом столбце. Мой вопрос в том, где я сделал ошибку.

+0

Каких приложений вы ориентируетесь, я думаю, что у вас есть пустая последняя строка и так как вы перебор всех строк он показывает значение ячейки последней строки. – Habib

+0

+ вы хотите убедиться, что в первом столбце вашей сетки нет пустой ячейки, или вы хотите убедиться, что ячейка в первой строке вашего первого столбца не пуста? – David

+0

Я думаю, что вы дали мне идею, немного изменили код и добавили -1 к счетчику. В настоящее время работает! – mateoZD

ответ

0

Рабочий код:

private void provjeri_unose() 
    { 
     string šifra = "šifra"; 
     for (int t = 0; t < dataGridView1.Rows.Count-1; t++) 
     { 
      DataGridViewRow row = dataGridView1.Rows[t]; 
      if (row.IsNewRow) break; 
      šifra = Convert.ToString(dataGridView1.Rows[t].Cells[0].Value); 
      Proizvod.Šifra = šifra; 
      if (string.IsNullOrEmpty(Proizvod.Šifra)) 
      { 
       MessageBox.Show("Šifra mora biti unesena"); 
      } 
     } 

    } 
+1

Это не будет проверять ячейку в последней строке. Измените 'for (int t = 0; t David

-1
  gridgetrequest.DataSource = dt; 
      gridgetrequest.DataBind(); 

      string emptydata = dt.Rows[0]["processdate"].ToString(); 

      if (dt.Rows.Count > 0) 
      { 

       if (emptydata == "") 
       { 
        foreach (GridViewRow row in gridgetrequest.Rows) 
        { 
         Label checkPRNNo = (Label)row.FindControl("lblprocessdate"); 

         checkPRNNo.Text = "anand"; 
        } 



       } 
      } 
Смежные вопросы