Можем ли мы использовать точечные команды (специальные команды SQlite) в C # - PullRequest
1 голос
/ 01 ноября 2019
string batFilePath = @"D:\mockforbat.bat";
if (!File.Exists(batFilePath))
{
    using (FileStream fs = File.Create(batFilePath))
    {
        fs.Close();
    }
}

using (StreamWriter sw = new StreamWriter(batFilePath))
{
    sw.WriteLine(@".mode csv");
    sw.WriteLine(@".import D:/Ashif/SQLITE/Bulk.csv excelUpload");
}


SQLiteCommand cmd = new SQLiteCommand(conn);

cmd.CommandText = ".read D:/mockforbar.bat";
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

При выполнении этой команды я получаю эту ошибку.

Произошло необработанное исключение типа «System.Data.SQLite.SQLiteException» в System.Data.SQLite.dll

Дополнительная информация: логическая ошибка SQL

рядом с ".": Синтаксическая ошибка

1 Ответ

2 голосов
/ 01 ноября 2019

Нет, вы не можете использовать команды командной строки Sqlite (например, .read и .import), используя SQLiteCommand.

Вам нужно будет вызвать командупрограммы sqlite или sqlite3, использующие System.Diagnostics.Process для выполнения этих команд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...