将数据插入SQLite
本文关键字:SQLite 插入 数据 | 更新日期: 2023-09-27 18:22:02
我正在尝试使用WPF创建一个数据库,并将数据插入到表中。
我用一个按钮将4个不同的数据插入到表中,它工作正常,但我只能在表中插入"一个"数据,不管我按了多少次按钮。
这是我的代码:
private void Button_Click(object sender, RoutedEventArgs e)
{
SQLiteConnection sqlite_conn;
SQLiteCommand sqlite_cmd;
SQLiteDataReader sqlite_datareader;
sqlite_conn = new SQLiteConnection("Data Source=imageDB.db;Version=3;New=True;Compress=True;");
sqlite_conn.Open();
sqlite_cmd = sqlite_conn.CreateCommand();
sqlite_cmd.CommandText = "CREATE TABLE image_table (id integer, name varchar(100), location varchar(500), appendix varchar(500));";
sqlite_cmd.ExecuteNonQuery();
string key = nowKey.ToString();
string name = dbNameBox.Text;
string location = dbLocationBox.Text;
string app1 = dbNotebox.Text;
sqlite_cmd.CommandText = "INSERT INTO image_table (id, name, location, appendix) VALUES ('" + nowKey.ToString() + "', '" + name + "', '" + location + "', '" + app1 + "');";
sqlite_cmd.ExecuteNonQuery();
sqlite_cmd.CommandText = "SELECT * FROM image_table";
sqlite_datareader = sqlite_cmd.ExecuteReader();
while (sqlite_datareader.Read())
{
string data = sqlite_datareader.GetString(3);
MessageBox.Show(data);
}
sqlite_conn.Close();
}
我在这里没有使用"autoincrement"关键字,也没有使用"primarykey"。我试着移动
sqlite_conn = new SQLiteConnection("Data Source=imageDB.db;Version=3;New=True;Compress=True;");
出了功能,但仍然不起作用。
请给我建议!真的很感激提前感谢!
每次单击都是从头开始创建一个表。您应该创建一次表(根据需要,可能是在程序启动或单击另一个按钮时),然后在同一个表中插入数据。
目前发生的情况是,当您单击按钮时,您的表将再次创建,覆盖已经存在的内容。
每次都要创建一个新表。要解决此问题,请使用:CREATE TABLEIF NOT EXISTS
sqlite_cmd.CommandText = "CREATE TABLE IF NOT EXISTS image_table (id integer, name varchar(100), location varchar(500), appendix varchar(500));";
sqlite_cmd.ExecuteNonQuery();