将数据插入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;");

出了功能,但仍然不起作用。

请给我建议!真的很感激提前感谢!

将数据插入SQLite

每次单击都是从头开始创建一个表。您应该创建一次表(根据需要,可能是在程序启动或单击另一个按钮时),然后在同一个表中插入数据。

目前发生的情况是,当您单击按钮时,您的表将再次创建,覆盖已经存在的内容。

每次都要创建一个新表。要解决此问题,请使用: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();