通过我的 C# 代码插入数据时,数据未在 SQLite 表中显示/更新

Son*_* P. 0 c# database 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!");
        }
    }
Run Code Online (Sandbox Code Playgroud)

该代码当前有效,并且每当添加新用户时都会添加到数据库中的正确表中。用户信息可以用于登录,但不会显示在表中,使用 DB Browser for SQLite 查看该表。

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

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

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

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

我也发现了类似的帖子,但是没有人回复。现在我不知道该怎么办,所以我请求你的帮助。

Son*_* P. 7

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

  • 在其他地方没有人提到过这一点,这节省了我很多时间。万分感谢! (2认同)