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);并重试,但它仍然不会在表中更新,但数据仍然可以用于登录。
我也发现了类似的帖子,但是没有人回复。现在我不知道该怎么办,所以我请求你的帮助。
我明白了问题所在;我正在检查存储在解决方案中的数据库,但我应该检查的是存储在 ...\bin\debug 文件夹中的数据库。文件夹内的数据库显示添加的数据。