MOUAD MOUMENE Ответов: 1

Индекс вне диапазона ?


NpgsqlCommand cd = new NpgsqlCommand("insert into client (ref_client,type_client,nom,adresse,tele,fax) values (@ref_client,@type_client,@nom,@adresse,@tele,@fax) ", cnx);
            Console.WriteLine(dataGridView1.SelectedRows.Count.ToString());
            MessageBox.Show(dataGridView1.SelectedRows.Count.ToString());

            cd.Parameters.AddWithValue("@ref_client", dataGridView1.SelectedRows[2].Cells[1].Value.ToString());
            cd.Parameters.AddWithValue("@type_client", dataGridView1.SelectedRows[2].Cells[2].Value.ToString());
            cd.Parameters.AddWithValue("@nom", dataGridView1.SelectedRows[2].Cells[3].Value.ToString());
            cd.Parameters.AddWithValue("@adresse", dataGridView1.SelectedRows[2].Cells[4].Value.ToString());
            cd.Parameters.AddWithValue("@tele", dataGridView1.SelectedRows[2].Cells[5].Value.ToString());
            cd.Parameters.AddWithValue("@fax", dataGridView1.SelectedRows[2].Cells[6].Value.ToString());
            cnx.Open();
            cd.ExecuteNonQuery();
            cnx.Close();



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

могу ли я получить помощь по поводу моего кода?
ну, я пытаюсь подключить свою базу данных к vs (честно говоря, я не очень хорошо с ней знаком )
и я пытаюсь создать настольное приложение, в котором я могу назначать свои значения и хранить их в своей базе данных (используя postgresql кстати)
может у помогите пожалуйста .
спасибо тебе

MadMyche

Когда вы отлаживаете это; то, что появляется из консоли.WriteLine или MessageBox.Показать команды?

1 Ответов

Рейтинг:
4

F-ES Sitecore

Вы получаете это, потому что пытаетесь ссылаться на элемент в коллекции, который не существует. Так что когда вы это сделаете

something[0]


вы ссылаетесь на первый пункт в разделе "Что-то"

something[1]


это относится ко второму пункту и так далее. Если, Однако, есть только 1 элемент в "что-то", то вы получите индекс из ошибки диапазона. У нас нет доступа к вашим коллекциям, так что это не то, что мы можем исправить для вас, вам нужно будет использовать отладчик, чтобы изучить ваши коллекции и выяснить, почему элементы, которые, как вы думаете, там на самом деле нет.


MOUAD MOUMENE

можете ли вы дать более подробную информацию pls

MOUAD MOUMENE

я не понял , почему моя коллекция не существует, пока я устанавливал соединение с моей базой данных (postgresql), разве моя коллекция не является таблицей моей базы данных ??

F-ES Sitecore

Проблема будет заключаться в следующем коде

dataGridView1.SelectedRows[2].Клетки[1]

Либо Отбираются Воробьи.Рассчитывать менее, чем 3 или .Клеток[1] - меньше, чем 2.

MOUAD MOUMENE

когда я делал выбранные строчки.Посчитайте он показал мне значение 1
для клеток он показывал 6

F-ES Sitecore

Так что ты не можешь этого сделать .SelectedRows[2], так как нет трех выбранных строк.

MOUAD MOUMENE

но в моей таблице у меня есть более 3 строк

RickZeeland

Но вы выбрали только одну.