SQLITE - INSERT не возвращает ошибку, но данные не вставлены - PullRequest
0 голосов
/ 15 июня 2010

Я пытаюсь вставить данные в файл локальной базы данных SQLITE из приложения C #. Транзакция не выдает никаких ошибок, но данные не вставляются. Тот же оператор вставки работает из анализатора запросов.

Нужно ли выполнять коммит? Есть ли метод Commit?

Свойство транзакции команды имеет значение null ..

  var command = new SQLiteCommand(insert.BuildInsert(tableName,keyValuePairs),Connection);

            command.ExecuteNonQuery();

UPDATE:

Я также пытался связать свою команду SQLite с транзакцией SQLite, но безуспешно.

try
        {
            SQLiteTransaction liteTransaction = Connection.BeginTransaction();
            SQLiteCommand command = new SQLiteCommand(insert.BuildInsert(tableName, keyValuePairs), Connection);
            command.Transaction = liteTransaction;
            command.ExecuteNonQuery();
            liteTransaction.Commit();
        }
        catch (SQLiteException e)
        {
            //error
            connection.Close();
        }

Метод BuildInsert просто создает строку, которая является INSERT. Вставка отлично работает в анализаторе запросов.

public  string BuildInsert(string tableName, IDictionary<string, string> testDataDic)
    {
        stringBuilder = new StringBuilder(String.Format("INSERT INTO {0} ", tableName));
        AddColumns(stringBuilder,testDataDic.Keys);
        AddValues(stringBuilder, testDataDic.Values);

        return stringBuilder.ToString();

    }

Это пример оператора INSERT. Это прекрасно работает вне кода, но не выдает никаких ошибок:

INSERT INTO TestData (walking,running,image,yoga,exercise,meditation,hobby,somethingelse,howoften,numtechniques,userreturn,chosentechnique,chosentechnique)VALUES ("true","I will try to use deep breathing.","false","true","false","false","true","true","When I'm stressed","1","true","deepbreathing","deepbreathing"); COMMIT;

1 Ответ

0 голосов
/ 15 июня 2010

DOH! Поэтому для операции построения локальной базы данных было установлено значение «Всегда копировать». У меня несколько версий одного и того же файла.

Извините за это. Это хромое.

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