Member 13809133 Ответов: 2

Как я могу получить свои данные из datagridview в базу данных sqlite


Я хочу сохранить свои данные из datagridview в мою базу данных SQLite, но есть некоторые ошибки.

Данные не удалось сохранить в базе данных и окно сообщения об ошибке продолжает появляться

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

SQLiteConnection sa = new SQLiteConnection("Data Source=|DataDirectory|\\trendchart.db");
           sa.Open();

           using (SQLiteConnection sqlconn = new SQLiteConnection(sa))
           {

               foreach (DataGridViewRow row in dataGridView1.Rows)
               {
                   for (int z = 0; z < 31; z++)

                   {
                       using (SQLiteCommand sqlcomm = sqlconn.CreateCommand())
                       {

                           sqlcomm.CommandText = "Insert into data (TOP(1),TOP(2) ) values(@TOP(1),@TOP(2))";
                           try
                           {
                               sqlcomm.Parameters.AddWithValue("TOP(1)", dataGridView1.CurrentRow.Cells["TOP(1)"].Value.ToString());
                               sqlcomm.Parameters.AddWithValue("TOP(2)", dataGridView1.CurrentRow.Cells["TOP(2)"].Value.ToString());
                               sqlcomm.ExecuteNonQuery();
                               MessageBox.Show("Data is save please check thks ");

                           }
                           catch (Exception ex)
                           {
                               MessageBox.Show("Error Please fix ");
                           }
                       }
                   }

Richard MacCutchan

Какие ошибки? Пожалуйста, не ждите, что мы догадаемся, что происходит, когда вы запускаете свой код, мы не можем видеть ваш экран.

2 Ответов

Рейтинг:
2

Graeme_Grant

Это один из способов сделать это: Переносимые базы данных (II): использование SQLite с Entity Framework[^]


Рейтинг:
1

CHill60

Я почти уверен, что это то, как вы назвали свои столбцы и параметры sql. Попробуйте вместо этого

sqlcomm.CommandText = "Insert into data ([TOP(1)],[TOP(2)] ) values(@TOP1,@TOP2)";
 try
 {
     sqlcomm.Parameters.AddWithValue("@TOP1", dataGridView1.CurrentRow.Cells["TOP(1)"].Value.ToString());
     sqlcomm.Parameters.AddWithValue("@TOP2", dataGridView1.CurrentRow.Cells["TOP(2)"].Value.ToString());
     sqlcomm.ExecuteNonQuery();
Моменты, которые следует отметить:
- квадратные скобки вокруг названий столбцов - иначе они были бы незаконными.
- Этот @ символы при добавлении параметров
- Удаление (незаконных) символов в именах параметров - TOP(1) становится @TOP1


Richard Deeming

У тебя одна из квадратных скобок не в ту сторону - [TOP(1)[ должно быть [TOP(1)]. :)

CHill60

Д - я это исправлю. Спасибо