2015-02-20 2 views
0

Я пытаюсь вставить некоторые значения в SQLite базу данных в C# .all значения являются label.text, но он не работает, я думаю, что что-то происходит не так:значения Вставить в SQLITE

SQLiteConnection con = new SQLiteConnection("Data Source=Data/questions.sqlite;"); 

SQLiteCommand cmd = new SQLiteCommand("insert into finaltest(id,true,false,white,percent) values(3,'" + label1.Text + "','" + label2.Text + "','" + label3.Text + "','" + label4.Text + "')", con); 

con.Open(); 
cmd.ExecuteNonQuery();   
con.Close(); 

I также попытался использовать addwithvalue, но опять же это не сработало.

SQLiteConnection con = new SQLiteConnection("Data Source=Data/questions.sqlite;"); 

SQLiteCommand cmd = new SQLiteCommand("insert into finaltest(id,true,false,white,percent) values(3,@b,@c,@d,@e)", con); 


cmd.Parameters.AddWithValue("@b", label2.Text); 
cmd.Parameters.AddWithValue("@c", label3.Text); 
cmd.Parameters.AddWithValue("@d", label4.Text); 
cmd.Parameters.AddWithValue("@e", label5.Text);   
con.Open(); 
cmd.ExecuteNonQuery(); 

con.Close(); 
+2

Не работает означает? –

+2

Вы всегда должны использовать [параметризованные запросы] (http://blog.codinghorror.com/give-me-parameterized-sql-or-give-me-death/). Этот тип конкатенаций строк открыт для [SQL Injection] (http://en.wikipedia.org/wiki/SQL_injection) атак. –

+0

Я не имею в виду ничего вставить в таблицу после запуска. Конечно, даже он не показывает никаких ошибок. Я использую «try and catch», но это не вызывает никакой ошибки! – MohammadReza

ответ

0

нажмите на базе данных в обозревателе решений.

В окне свойств измените значение «Копировать в выходной каталог» на «Всегда копировать», как показано на изображении.

Attached Image

Если вы думаете, что не работает для вас открывается просто закрыть экземпляр таблицы базы данных в главном окне затем показать ваши данные еще раз. Потому что, когда вы показываете данные, если предыдущий экземпляр существует, он будет фокусироваться на этом окне, но не обновляется.

Check Pic

Это работает для меня. :)

0

Вы можете попробовать это: 1) Выберите базу данных SQLite в обозревателе решений и изменить опцию «Копировать в выходной каталог» в «Не копировать» 2) Перестроить вашу программу 3) Скопировать и вставьте свою базу данных SQLite в каталог bin \ Debug \ Data 4) Запустите свою программу

Обновление должно быть выполнено.

Дополнительные ресурсы: https://msdn.microsoft.com/en-us/library/ms246989.aspx

+0

Вы пробовали вышеуказанные шаги? База данных будет перезаписана, если она указана как «Копировать всегда». – PythaLye

+0

После того, как вы изменили на «Не копировать», база данных в bin \ Debug \ Data не будет перезаписана, чтобы ваши данные были сохранены во втором исполнении программы. Однако любые изменения в схеме базы данных в будущем потребуют замены новой базы данных. – PythaLye

+0

большое спасибо! это сработало! :) – MohammadReza

Смежные вопросы