Problema SQLITE.NET com BeginTransaction
-
20-09-2019 - |
Pergunta
Estou tentando usar o System.data.sqlite Library e estou seguindo a documentação sobre otimizar inserções, por isso copiei este código diretamente para fora da documentação:
using (SQLiteTransaction mytransaction = myconnection.BeginTransaction())
{
using (SQLiteCommand mycommand = new SQLiteCommand(myconnection))
{
SQLiteParameter myparam = new SQLiteParameter();
int n;
mycommand.CommandText = "INSERT INTO [MyTable] ([MyId]) VALUES(?)";
mycommand.Parameters.Add(myparam);
for (n = 0; n < 100000; n ++)
{
myparam.Value = n + 1;
mycommand.ExecuteNonQuery();
}
}
mytransaction.Commit();
}
Agora, eu inicializo a conexão antes disso usando
SqlConnection myconnection = new SqlConnection("Data Source=blah");
Eu tenho um banco de dados chamado blá, com as tabelas e valores corretos.
O problema é quando eu executo este código, ele diz que "a operação não é válida devido ao estado atual do objeto"
Eu tentei alterar o código várias vezes e ainda aponta para iniciar a transação. O que da?
Solução
Você pode ter declarado e instanciado a conexão, mas você a abriu?
A primeira coisa que eu tentaria é remover o material da transação e ver se o código realmente funciona - veja o que isso diz ...
Martin
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow