Как я могу копировать или вставлять данные в SQLiteDataBase?

62
6

Я использую веб-службу, чтобы поймать данные из SQL Server 2012 и помещать их в DataTable.I хочу скопировать или вставить этот datatable в базу данных SQLite. Я делаю код на С#. Там есть способ сделать это.

спросил(а) 2021-01-19T12:58:14+03:00 2 месяца, 3 недели назад
1
Решение
122

для каждой строки в таблице данных вы должны сделать что-то вроде:

SQLiteConnection connSqlite = new SQLiteConnection(string.Format("Data Source={0};Version=3;", filepath));

connSqlite.Open();
DataTable a = new DataTable();
for (int i = 0; i < a.Rows.Count; i++)
{
string rowquery = "insert into tbl values(";
for (int z = 0; z < a.Rows[i].ItemArray.Count(); z++)
{
rowquery+=a.Rows[0].ItemArray[1].ToString();
if (z < a.Rows[i].ItemArray.Count() - 1)
rowquery += ",";
}
rowquery += ")";
}
SQLiteCommand commSqlite = new SQLiteCommand(strCommand, connSqlite);
commSqlite.ExecuteNonQuery();

ответил(а) 2021-01-19T12:58:14+03:00 2 месяца, 3 недели назад
45

Когда вы загружаете DataTable из исходной базы данных, установите для свойства AcceptChangesDuringFill адаптера данных значение false, так что загруженные записи сохраняются в добавленном состоянии (при условии, что исходный db является SQL Server)

var sqlAdapter = new SqlDataAdapter("SELECT * FROM the_table", sqlConnection);
DataTable table = new DataTable();
sqlAdapter.AcceptChangesDuringFill = false;
sqlAdapter.Fill(table);

Создайте таблицу в базе данных SQLite, выполнив оператор CREATE TABLE непосредственно с помощью SQLiteCommand.ExecuteNonQuery

Создайте новый DataAdapter для подключения базы данных SQLite и используйте его для обновления db:

ответил(а) 2021-01-19T12:58:14+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема