2014-06-14 3 views
0

У меня есть dataGridView и кнопка, когда я кликаю кнопку, ячейка thrid каждой строки содержит значение «1», но я хочу, чтобы только строки, содержащие данные, содержали «1» в третьем столбце. Я попробовал этот код, чтобы проверить, прежде чем принимать те, но результат показан на рисунке:Я получаю все ряды третьих столбцов «одни» !!

private void button4_Click(object sender, EventArgs e) 
     { 
      DateTime dt = DateTime.Now; 
      dataGridView1.Rows.Add("" + dt.Year.ToString() + "", "En cours", "0"); 


      if (dataGridView1.SelectedRows.Count == 1) 
      { 
       DataGridViewRow row = dataGridView1.SelectedRows[0]; 

       for (int i = 0; i < dataGridView1.Rows.Count; i++) 
       { 
        // int ik = (int)dataGridView1.Rows[i].Cells[3].Value; 
        foreach (DataGridViewRow row1 in dataGridView1.Rows) 
        { 
         foreach (DataGridViewCell cell in row1.Cells) 
         { 
          if (cell.Value != null) 
          { 
           dataGridView1.Rows[i].Cells[2].Value = 1; 
          } 
          else //if (string.IsNullOrEmpty(cell.Value.ToString())) 
          { 
           break; 
          } 


         } 
        } 
       } 
      } 
     } 

Результат: enter image description here

спасибо за помощь

+0

Я хочу, чтобы каждая строка в dataGridView содержала значение «1» в третьем столбце, только строки, содержащие данные, но для другого пустые строки (cell.value == null необходимо поставить «1») :) – Lina

+0

Мне нужна помощь: '( – Lina

ответ

1

Может быть, это поможет:

private void button4_Click(object sender, EventArgs e) 
     { 
      DateTime dt = DateTime.Now; 
      dataGridView1.Rows.Add("" + dt.Year.ToString() + "", "En cours", "0"); 


      if (dataGridView1.SelectedRows.Count == 1) 
      { 
       DataGridViewRow row = dataGridView1.SelectedRows[0]; 

       for (int i = 0; i < dataGridView1.Rows.Count; i++) 
       { 
        // int ik = (int)dataGridView1.Rows[i].Cells[3].Value; 
        foreach (DataGridViewRow row1 in dataGridView1.Rows) 
        { 
         foreach (DataGridViewCell cell in row1.Cells) 
         { 
          string st = Convert.ToString(dataGridView1.Rows[i].Cells[2].Value); 
          if (cell.Value == null && st == "0") 
          { 
           dataGridView1.Rows[i].Cells[2].Value = 1;         
          } 
          else //if (string.IsNullOrEmpty(cell.Value.ToString())) 
          {         
           break;         
          } 
         } 
        } 
       } 
      }    
     } 

Редактировать

Я не уверен, что некоторые вещи должны быть сделаны таким образом, как вы, и каков результат этого проекта. Но я изменил и отлаживал код, который сейчас работает, надеюсь, что это поможет

+0

спасибо Dusan, но со счетчиком Когда я пытаюсь отладить код, отладчик не может получить доступ к «если условие», то расставьте строки не пустые Спасибо за вашу помощь снова – Lina

+0

Я сожалею, Dusan, но это мне не помогает :( – Lina

+0

См. править выше. – Dusan

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