@beduin01

Почему в БД вставляется одна и та же копия данных?

Не могу понять, почему следующий код вставляет в БД одну и ту же копию данных.

Вот так это выглядит.

Метод принимает массив данных из PG. Потом бегает по нему и каждый элемент вставляет в SQLite. Я даже вывод элементов добавил. Выводятся все разные, а вставляется упорно один и тот же. Вот мой код:

public void InsertData(List<UserData> PGuds)
        {
            Connection = new SQLiteConnection("Data Source=" + config.SQLLitePath + ";Version=3;");
            Connection.Open();
            
            SQLiteCommand insertSQL = new SQLiteCommand(@"INSERT INTO ""USERS"" (id, guid, username, userblob) VALUES (?,?,?,?)", (SQLiteConnection)Connection);
            try
            {
                Console.WriteLine(uds.Count);

                Console.WriteLine("iiiiiiiiiiiiiiiiiiiiii");
                foreach (UserData d in PGuds)
                {
                 Console.WriteLine("ooooooooooooo");
                 Console.WriteLine(d.Id);
                 Console.WriteLine(d.Guid);
                 Console.WriteLine(d.Name);
                insertSQL.Parameters.Add(new SQLiteParameter { Value = d.Id });
                insertSQL.Parameters.Add(new SQLiteParameter { Value = d.Guid });
                insertSQL.Parameters.Add(new SQLiteParameter { Value = d.Name });
                insertSQL.Parameters.Add(new SQLiteParameter { Value = d.UserBlob, DbType = DbType.Binary });

                insertSQL.ExecuteNonQuery();
                Console.WriteLine("Data Inserted in SQLLite");
                }

            }

            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine(e.Message);

            }
        }
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
GavriKos
@GavriKos
Не сильно в теме, но скорее всего вам надо строку с созданием запроса ("SQLiteCommand insertSQL = new SQLiteCommand") поместить тоже в цикл. Скорее всего метод Add не отработает, когда все данные уже добавлены.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы