我尝试使用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();
}
我没有使用"自动增量"这里是关键字,既不是"主键"。 我尝试过移动
sqlite_conn = new SQLiteConnection("Data Source=imageDB.db;Version=3;New=True;Compress=True;");
退出了该功能,但它仍然无法正常工作。
请给我建议!万分感激 提前谢谢!
答案 0 :(得分:0)
在每次点击时,您都是从头开始创建表格。您应该创建一次表(可能在程序启动或另一个按钮单击,具体取决于您的需要),然后在同一个表中插入数据。
目前正在发生的事情是,当您点击按钮时,您的表格会再次被覆盖已覆盖的内容。
答案 1 :(得分:0)
您每次都要创建一个新表。 要解决此问题,请使用:CREATE TABLE IF 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();