c# - 如何读取数据库表并将其显示在文本框中
问题描述
我正在创建一个基本应用程序,用于在 Visual Studio 中使用 Windows 窗体添加和显示客户信息。我已经设置好了,所以我可以在 gridview 中显示数据库的内容,还可以添加到数据库中,您可以在下面看到代码。我现在坚持的是更新客户信息。我想通过用户在文本框中输入的 customerID 搜索数据库,并将特定客户的详细信息显示到他们的相关文本框中,然后我可以对其进行编辑和保存。
using (SQLiteCommand cmd = conn.CreateCommand())
{
// adds customers details to the database
cmd.CommandText = @"INSERT INTO customer (title, " + "firstname, " + "lastname, " + "dob, " + "nicode, " + "email, " + "password, " + "allowance) VALUES (@setTitle, @setFirstname, @setLastname, @setDOB, @setNICode, @setEmail, @setPassword, @setAllowance)";
cmd.Parameters.AddWithValue("setTitle", cb_title.Text);
cmd.Parameters.AddWithValue("setFirstname", txtFirst_Name.Text);
cmd.Parameters.AddWithValue("setLastname", txtSurname.Text);
cmd.Parameters.AddWithValue("setDOB", dtp_DOB.Text);
cmd.Parameters.AddWithValue("setNICode", txtNI_Code.Text);
cmd.Parameters.AddWithValue("setEmail", txtEmail.Text);
cmd.Parameters.AddWithValue("setPassword", txtPassword.Text);
cmd.Parameters.AddWithValue("setAllowance", txtAllowance.Text);
int recordsChanged = cmd.ExecuteNonQuery();
MessageBox.Show("Customer Added");
conn.Close();
Customers customers = new Customers();
customers.Show();
this.Hide();
}
这就是我添加新客户的方法,效果很好
using (SQLiteCommand cmd = conn.CreateCommand())
{
// adds customers details to the database
cmd.CommandText = @"UPDATE customer SET (title, " + "firstname, " + "lastname, " + "dob, " + "nicode, " + "email, " + "password, " + "allowance) VALUES (@setTitle, @setFirstname, @setLastname, @setDOB, @setNICode, @setEmail, @setPassword, @setAllowance) WHERE custid = @recd";
cmd.Parameters.AddWithValue("title", cb_title_update.Text);
cmd.Parameters.AddWithValue("firstname", txtFirst_Name_update.Text);
cmd.Parameters.AddWithValue("lastname", txtSurname_update.Text);
cmd.Parameters.AddWithValue("dob", dtp_DOB_update.Text);
cmd.Parameters.AddWithValue("nicode", txtNI_Code_update.Text);
cmd.Parameters.AddWithValue("email", txtEmail_update.Text);
cmd.Parameters.AddWithValue("password", txtPassword_update.Text);
cmd.Parameters.AddWithValue("allowance", txtAllowance_update.Text);
cmd.Parameters.AddWithValue("recd", Convert.ToInt32(txtSearch.Text));
int recordsChanged = cmd.ExecuteNonQuery();
MessageBox.Show("Customer Updated");
conn.Close();
Customers customers = new Customers();
customers.Show();
this.Hide();
}
这就是我迄今为止更新数据库的代码,但我不知道如何检索客户数据并将其显示到文本框中,任何帮助或指导将不胜感激
解决方案
您的更新声明不正确。试试下面的。
cmd.CommandText =@"UPDATE customer
SET title = @setTitle,
firstname = @setFirstname,
lastname = @setLastname
dob = @setDOB,
nicode = @setNICode,
email = @setEmail,
password = @setPassword,
allowance = @setAllowance
WHERE custid = @recd";
它与插入有点不同。每个字段都设置为一个新值。你不需要所有的连接。这是一个文字字符串。
当然,在实际应用程序中,您永远不会将密码存储为纯文本。
推荐阅读
- javascript - Javascript页面进入事件
- asp.net - 使用 SQLite 数据库在 Azure 上发布时出现“实体框架 SQL 脚本生成失败”错误
- i2c - 为什么 `i2c_smbus_write_byte_data` 在 uClinux 2.4 上会返回“不允许操作”?
- html - 在私有 Bitbucket 服务器上呈现单个 HTML 页面
- javascript - viewer.getPlugin(PhotoSphereViewer.MarkersPlugin) 返回 null
- python - cx_Freeze:Python 错误主脚本。找不到模块错误:没有名为 pygments.lexers.python 的模块
- c# - ML.NET 是否支持带有 RBF 内核的 SVM?
- android - 颤振用户身份验证
- qt - Qt Widget 点击 2D pos 到 3D 世界坐标
- php - 将 PDO 准备好的语句放在 DB_Connector 类中的什么位置 - 在构造函数或函数中?