Pipo01 Posted June 1, 2014 at 08:57 PM Report #557835 Posted June 1, 2014 at 08:57 PM boas 🙂 eu quando carrego no meu button para calcular as minhas formulas e em seguida gravar na bd ele da me um erro e diz me que a BD esta bloqueada ... :/ alguem sabe pq e a soluçao para isto? :/ obrigado 🙂
nelsonr Posted June 1, 2014 at 09:12 PM Report #557837 Posted June 1, 2014 at 09:12 PM Mostra a mensagem exacta e a linha do erro
Pipo01 Posted June 1, 2014 at 09:26 PM Author Report #557840 Posted June 1, 2014 at 09:26 PM entao e assim quando carrego no button ele cracha e fica um tempo "parado" e dp apareçe um janela pequena a dizer "database is locked" e isso que acontece ja para nao falar que criei varias vezes ligaçoes e BD novas com as mesmas tabelas e ate a data da BD consigo so ifazer um insert e select numa outra tabela da BD
nelsonr Posted June 1, 2014 at 09:29 PM Report #557842 Posted June 1, 2014 at 09:29 PM Que comando estás a tentar executar quando dá esse erro? Estás a fechar a ligação à base de dados quando não precisas?
Pipo01 Posted June 1, 2014 at 09:33 PM Author Report #557843 Posted June 1, 2014 at 09:33 PM aqui esta string tix = @"data source=..\\..\SQLITE\teste.db"; SQLiteConnection liga = new SQLiteConnection(tix); string query = "insert into Dados(idade,sexo,altura,peso,duracao,atividade,kcal) values (@idade,@sexo,@altura,@peso,@duracao,@atividade,@kcal)"; SQLiteCommand comando = new SQLiteCommand(query, liga); comando.Parameters.AddWithValue("@idade", textBox1.Text); if (homem) { comando.Parameters.AddWithValue("@sexo", radioButton1.Text); } else { comando.Parameters.AddWithValue("@sexo", radioButton2.Text); } comando.Parameters.AddWithValue("@altura", textBox3.Text); comando.Parameters.AddWithValue("@peso", textBox2.Text); comando.Parameters.AddWithValue("@duracao", textBox4.Text); comando.Parameters.AddWithValue("@atividade", listBox2.Text); comando.Parameters.AddWithValue("@kcal", label8); liga.Open(); comando.ExecuteNonQuery(); liga.Close();
nelsonr Posted June 1, 2014 at 09:37 PM Report #557844 Posted June 1, 2014 at 09:37 PM E é o unico sitio onde mexe na bd?
Pipo01 Posted June 1, 2014 at 09:44 PM Author Report #557845 Posted June 1, 2014 at 09:44 PM como assim? eu ja fiz a bd toda de novo varias vezes e com as 3 tabelas duas tao ok e essa nao... e ja a do meu login insere e vai buscar os dados e essa cracha o programa... e mt sinceramente nao sei o que fazer e agora tou de "maos e pes atados" 😞
nelsonr Posted June 1, 2014 at 09:51 PM Report #557849 Posted June 1, 2014 at 09:51 PM E sempre que vais à base de dados fechas a ligação?
Pipo01 Posted June 1, 2014 at 09:56 PM Author Report #557852 Posted June 1, 2014 at 09:56 PM string tix = @"data source=..\\..\SQLITE\teste.db"; SQLiteConnection liga = new SQLiteConnection(tix); string query = "insert into Dados(idade,sexo,altura,peso,duracao,atividade,kcal) values (@idade,@sexo,@altura,@peso,@duracao,@atividade,@kcal)"; SQLiteCommand comando = new SQLiteCommand(query, liga); comando.Parameters.AddWithValue("@idade", textBox1.Text); if (homem) { comando.Parameters.AddWithValue("@sexo", radioButton1.Text); } else { comando.Parameters.AddWithValue("@sexo", radioButton2.Text); } comando.Parameters.AddWithValue("@altura", textBox3.Text); comando.Parameters.AddWithValue("@peso", textBox2.Text); comando.Parameters.AddWithValue("@duracao", textBox4.Text); comando.Parameters.AddWithValue("@atividade", listBox2.Text); comando.Parameters.AddWithValue("@kcal", label8); liga.Open(); comando.ExecuteNonQuery(); liga.Close(); ve la a ultima linha de codigo... e sim fecho
nelsonr Posted June 1, 2014 at 10:49 PM Report #557854 Posted June 1, 2014 at 10:49 PM E é o unico sitio onde mexe na bd? E sempre que vais à base de dados fechas a ligação?
Pipo01 Posted June 1, 2014 at 10:52 PM Author Report #557855 Posted June 1, 2014 at 10:52 PM (edited) as respostas a essas perguntas nao tao no meu codigo? desculpa a minha ignorancia... nao, mexo noutras tabelas da msm BD Edited June 1, 2014 at 11:14 PM by Pipo01
nelsonr Posted June 2, 2014 at 08:36 AM Report #557873 Posted June 2, 2014 at 08:36 AM Nunca trabalhei com SQLLite mas parece que o problema deve estar em outros sitios que mexes na base de dados e por alguma razão não fechas a ligação.
Pipo01 Posted June 2, 2014 at 09:54 AM Author Report #557882 Posted June 2, 2014 at 09:54 AM eu fecho sempre a ligaçao no restante codigo,e eu ja tentei de tudo desde fazer novas BD ate procurar soluçoes para isto como reniciar a maquina instalar um programa para "matar" o ficheiro BD correpondente a isto...por isso nao sei mais o que fazer tou de maos e pes atados...
nelsonr Posted June 2, 2014 at 10:23 AM Report #557888 Posted June 2, 2014 at 10:23 AM Experimenta colocar a ligação dentro de um bloco using, exemplo: using(SQLiteConnection liga = new SQLiteConnection(tix)) { // Código que usa a ligação // ... } (isto em todos os sitios da tua aplicação que usas a base de dados)
Pipo01 Posted June 2, 2014 at 11:08 AM Author Report #557903 Posted June 2, 2014 at 11:08 AM ja tentei e nao deu em nada...
Pipo01 Posted June 3, 2014 at 03:10 PM Author Report #558076 Posted June 3, 2014 at 03:10 PM @nelsonr ?
nelsonr Posted June 3, 2014 at 03:25 PM Report #558080 Posted June 3, 2014 at 03:25 PM Se dizes que mesmo usando o "using" em TODOS os acessos à base de dados não resolve, não sei a razão do erro, visto não trabalhar com SQLLite.
Pipo01 Posted June 3, 2014 at 03:44 PM Author Report #558088 Posted June 3, 2014 at 03:44 PM (edited) entao pronto agradeço a tua ajuda 🙂 Edited June 3, 2014 at 03:44 PM by Pipo01
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now