Atul Rokade Ответов: 1

Как обновить только один столбец таблицы в datagridview


Всем привет ,

У меня есть один datagridview, который не подключается к базе данных, только один столбец, который выбирается из таблицы, и после подтверждения его бэкэнда он обновляет -1, означает, что имя лекарства XYZ после выбора и подтверждения должно быть 22-1 - это 21, я сделал кодирование для этого, но он показывает мне Индекс был вне зоны досягаемости. Должен быть неотрицательным и меньше размера коллекции.Имя параметра: индекс исключение строка medicinename = dataGridView1. SelectedRows[0].Ячейки["Medicine_Name"].Значение.Метод toString();

в datagridview im не показывает столбец total_available его следует обновлять, когда пользователь выбирает конкретное лекарство

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

string connectionString = null;
            connectionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
            con.ConnectionString = connectionString; 
            string medicinename = dataGridView1.SelectedRows[0].Cells["Medicine_Name"].Value.ToString();
            
            DialogResult dialogResult = MessageBox.Show("Are you sure you want to insert data", "Data insert Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dialogResult == DialogResult.Yes)
            {
                cmd = new OleDbCommand("update Medicine_Available_Detail set [total_available]=total_available-1 where [Medicine_Name]=@Medicine_Name", con);
                //cmd.Parameters.AddWithValue("@total_available", medicineavailable);
                cmd.Parameters.AddWithValue("@Medicine_Name", medicinename);
                con.Open();
                int n = cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("Record Updated Successfully");
                showdata();
                dataGridView1.Refresh();



            }

1 Ответов

Рейтинг:
0

OriginalGriff

Вам нужно начать с отладчика и посмотреть, с чем именно Вы имеете дело - скорее всего, свойство SelectedRows возвращает пустой список и, следовательно, не имеет элемента в нулевой строке, поэтому вы получаете плохое исключение индекса.
Но мы не можем проверить это: у нас нет доступа к вашему компьютеру или вашим данным.
Поэтому поставьте точку останова на линии и посмотрите, что именно у вас есть, когда она выполняется.
Очень вероятно, что сама ошибка заключается не в этом коде, а в том, что должно заполнять DataGridView или выбирать одну или несколько строк. Мы не можем сказать, и у нас нет кода.
Поэтому используйте инструменты, которые у вас есть, чтобы точно посмотреть, что происходит во время выполнения кода, и вы должны быть в состоянии разобраться в этом.