c# - 通过我的 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);
并再次尝试,但它仍然不会在表格中更新,但数据仍然可以用于登录。
我也找到了一个类似的帖子,但没有人回答。现在我不知道该怎么办,所以我请求你的帮助。
解决方案
我弄清楚了问题所在;我正在检查存储在解决方案中的数据库,但我应该检查的是存储在 ...\bin\debug 文件夹中的数据库。文件夹内的数据库显示添加的数据。
推荐阅读
- r - 过时的数据掩码。在 `dplyr::mutate()` 结束后解决 `xxxxxx` 为时已晚
- c# - 在页面底部添加表格(Aspose)
- flutter - 嗨,谁能帮我举一个 List 的例子
在颤抖? - javascript - 第一次正确获取数据,当用户移动彼此聊天时,状态值未刷新,显示过去+当前用户聊天
- python - 使用 vaex.from_csv 将 csv 转换为 hdf5 错误:“DataFrameArrays”对象没有属性“dtype”
- java - pubSubToBq 从消息中获取属性
- lambda - 球拍过程“积分”,它返回代表函数的双参数过程
- regex - PowerShell:批处理 - 一个接一个地运行两个正则表达式
- vue.js - Github Pages:请求失败,状态码 405
- bootstrap-4 - 如何使列高缩小到它的内容?