首页 > 解决方案 > 通过我的 C# 代码插入数据时,SQLite 表中的数据未显示/更新

问题描述

目前,我一直在做一些与 SQL 和 C# 相关的简单编码。我创建了一个注册表单,它将数据、用户名和密码存储在 SQLite 数据库中。这是我目前正在使用的代码:

private void AddLoginInfo(string username, string password)
    {
        auth = new Authentication();
        auth.getConnection();

        using (SQLiteConnection con = new SQLiteConnection(auth.connectionstring))
        {
            SQLiteCommand cmd = new SQLiteCommand();
            con.Open();

            string que = @"INSERT INTO LoginInfo(Username, Password) VALUES (@username, @password)";
            cmd.CommandText = que;
            cmd.Connection = con;
            cmd.Parameters.Add(new SQLiteParameter("@Username", username));
            cmd.Parameters.Add(new SQLiteParameter("@Password", password));
            cmd.ExecuteNonQuery();

            MessageBox.Show("Account Created!");
        }
    }

此代码当前有效,并且确实添加到数据库中的正确表中,但是无论何时添加新用户。用户信息可用于登录,但不显示在表中,使用 DB Browser for SQLite 查看。

例如,如果我创建一个新用户;'admin' 作为用户名,'password' 作为密码,通过表单,我得到一个消息框,上面写着'Account Created',我可以使用那个帐户登录。但是,如果我在数据库浏览器中查看该数据,即使刷新表后数据也不会显示。

在做了一些挖掘之后,我发现了这个并看到他们正在使用sqlCommand.Parameters.AddWithValue,所以我在我的代码中尝试了这个:

SQLiteCommand cmd = new SQLiteCommand(@"INSERT INTO LoginInfo(Username, Password) VALUES (@username, @password)", con);
cmd.Parameters.AddWithValue(new SQLiteParameter("@Username", txtBoxUsername.Text));

我试过这个,我得到一个 CS7036 错误。然后我意识到他们没有使用该new SQLiteParameter()部分,所以我将其删除cmd.Parameters.AddWithValue("@Username", txtBoxUsername.Text);并再次尝试,但它仍然不会在表格中更新,但数据仍然可以用于登录。

我也找到了一个类似的帖子,但没有人回答。现在我不知道该怎么办,所以我请求你的帮助。

标签: c#databasesqlite

解决方案


我弄清楚了问题所在;我正在检查存储在解决方案中的数据库,但我应该检查的是存储在 ...\bin\debug 文件夹中的数据库。文件夹内的数据库显示添加的数据。


推荐阅读