Ну так логично. Соединение само по-себе, команда - сама по себе.
Если просто посмотреть на описание SqlCommand (архитектура для SQLite - такая же)
https://msdn.microsoft.com/ru-ru/library/system.da...
то там можно увидеть следующее:
using (SqlConnection conn = new SqlConnection(connectionString)) {
using (SqlCommand cmd = new SqlCommand(commandText, conn)) {
// There're three command types: StoredProcedure, Text, TableDirect. The TableDirect
// type is only for OLE DB.
cmd.CommandType = commandType;
cmd.Parameters.AddRange(parameters);
conn.Open();
return cmd.ExecuteNonQuery();
}
}
Команда конструируется с отсылкой на соединение, которым и будет пользоваться.
Ровно такой же пример приводится и в описании SQLiteCommand
https://www.devart.com/dotconnect/SQLite/docs/Deva...public void ReadMyData(string myConnString)
{
string mySelectQuery = "SELECT DeptNo, DName FROM Dept";
SQLiteConnection sqConnection = new SQLiteConnection(myConnString);
SQLiteCommand sqCommand = new SQLiteCommand(mySelectQuery,sqConnection); // команда конструируется с указанием соединения!!!
sqConnection.Open();
SQLiteDataReader sqReader = sqCommand.ExecuteReader();
try
{
while (sqReader.Read())
{
Console.WriteLine(sqReader.GetInt32(0).ToString() + ", " + sqReader.GetString(1));
}
}
finally
{
// always call Close when done reading.
sqReader.Close();
// always call Close when done reading.
sqConnection.Close();
}
}
В общем ответ на вопрос "как исправить" один - понять суть.