vijay_bale Ответов: 1

В C# я хочу сохранить одну строку datagridview в базе данных SQL после заполнения всей строки.


Я хочу автоматически сохранить строку datagridview после того, как эта сетка будет полностью заполнена пользователем.
Уже связал этот gridview с моим файлом базы данных sql.

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

Для этого я написал один код в событии datagridview_RowLeave. но ошибка приближается.
вот мой код
private void dataGridView1_RowLeave(object sender, DataGridViewCellEventArgs e)
       {
           if (e.ColumnIndex == 5)
           {

               con.Open();
               SqlCommand insert = new SqlCommand("insert into invtempdb (fullname, quantity, itmbyp, itmprimary, itmtotal) values(@a,@b,@c,@d,@e)", con);

               insert.Parameters.Add("@a", dataGridView1.CurrentRow.Cells[1]);
               insert.Parameters.Add("@b", dataGridView1.CurrentRow.Cells[2]);
               insert.Parameters.Add("@c", dataGridView1.CurrentRow.Cells[3]);
               insert.Parameters.Add("@d", dataGridView1.CurrentRow.Cells[4]);
               insert.Parameters.Add("@e", dataGridView1.CurrentRow.Cells[5]);
               insert.ExecuteNonQuery();
               //con.Close();

               insert.ExecuteNonQuery();

               MessageBox.Show("value saved");
           }
           else
           {
               MessageBox.Show("Not Saved");
           }
       }

Karthik_Mahalingam

в чем же ошибка?

vijay_bale

Никакого отображения не существует из системы типов объектов.Окна.Формы.DataGridviewTextboxCell к известному управляемому поставщику собственного типа

Karthik_Mahalingam

вы используете текстовое поле ячейки, вы будете иметь, чтобы бросить его в текстовое поле Тип ячейки

vijay_bale

поэтому я должен преобразовать все ячейки datagridcells во время сохранения. Это правда

Karthik_Mahalingam

в зависимости от типа ячейки, которую вам придется разыграть, если это textboxcell, то разыграйте ее как DataGridViewTextBoxCell, как и то, как вы разместили.

vijay_bale

пришла другая ошибка. Невозможно привести объект типа System.Окна.Формы.DataDridviewTextBoxCell для ввода System.!Конвертируемый. Я думаю, что проблема с моим кастингом.

vijay_bale

@ karthik, как вы сказали в решении, это значение пришло по мере того, как я его хранил.

vijay_bale

Да как вы сказали ниже в решении он показывает значение того что я сохранил в этой ячейке

Karthik_Mahalingam

хорошо тогда вперед

vijay_bale

@ karthik некоторая ошибка отображения может быть изменена с dataGridView1_RowLeave. если да, то в каком случае я написал это.

1 Ответов

Рейтинг:
10

Karthik_Mahalingam

попробуйте вот так прочитать значение из DataGridViewTextBoxCell

string value = Convert.ToString((dataGridView1.Rows[e.RowIndex].Cells[1] as DataGridViewTextBoxCell).Value);