Mohamed El-Wehishy Ответов: 1

Выбрасывание исключения со вторым циклом в заполнении datagridview


привет каждому телу
я работаю на winform приложения и хотите, чтобы заполнить datagridview с определенные столбцы из DataTable и добавить столбец с названием товара штрих-код. первый столбец предназначен для номенклатуры№, второй столбец заполняется штрих-кодом, сгенерированным из номенклатуры№, а третий столбец-для названия номенклатуры. первый цикл работает хорошо, но со вторым циклом он выбрасывает исключение при заполнении второй строки в datagridviw. вот код

так в чем же проблема и решение

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

try
     {
             SqlCommand cmdss1 = new SqlCommand("usp_Get_All_Item", cn);
             cmdss1.CommandType = CommandType.StoredProcedure;



             cmdss1.Parameters.Clear();



             SqlDataAdapter SQss1 = new SqlDataAdapter(cmdss1);
             DataTable dtss1 = new DataTable();
             SQss1.Fill(dtss1);
             if (dtss1.Rows.Count > 0)
             {

                 for (int i = 0; i <= dtss1.Rows.Count - 1; i++)
                 {


                     string ssqs1 = dtss1.Rows[i]["Item_No"].ToString();
                     string ssqs2 = dtss1.Rows[i]["Item_Name"].ToString();

                     string s = ssqs1;


                     Image m1 = BarcodeLib.Barcode.DoEncode(BarcodeLib.TYPE.CODE39, s, true, Color.Black, Color.White, 1200, 1200);

                     dataGridView1.Rows[i].Cells[0].Value = ssqs1;
                     dataGridView1.Rows[i].Cells[1].Value = m1;
                     dataGridView1.Rows[i].Cells[2].Value = ssqs2;



                 }



             }
     }
     catch (Exception ex)
     {
          MessageBox.Show(ex.ToString());
     }

NotPolitcallyCorrect

Во-первых, вы хотите, чтобы мы догадались, что это за исключение?

Mohamed El-Wehishy

нет
я так сожалею об этом
вот это исключение
Система.ArgumentOutOfRangeException: индекс был вне диапазона. Должно быть неотрицательным и меньше размера коллекции.

1 Ответов

Рейтинг:
10

OriginalGriff

Вы, похоже, не добавляете никаких строк в свой datagridview: поэтому, когда вы пытаетесь установить значения, у вас почти наверняка заканчиваются строки, и в результате возникает исключение. Использование индекса не создает новую строку - вы должны сделать это явно с помощью DataGridView. Rows.Метод add.


Mohamed El-Wehishy

большое спасибо за вашу помощь

OriginalGriff

Пожалуйста