首页 > 解决方案 > 如何读取数据库表并将其显示在文本框中

问题描述

我正在创建一个基本应用程序,用于在 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();
}

这就是我迄今为止更新数据库的代码,但我不知道如何检索客户数据并将其显示到文本框中,任何帮助或指导将不胜感激

标签: c#visual-studiosqlite

解决方案


您的更新声明不正确。试试下面的。

    cmd.CommandText =@"UPDATE customer 
                    SET title = @setTitle,
                    firstname = @setFirstname, 
                    lastname = @setLastname 
                    dob = @setDOB, 
                    nicode = @setNICode, 
                    email = @setEmail,
                    password = @setPassword, 
                    allowance = @setAllowance 
                    WHERE custid = @recd";

它与插入有点不同。每个字段都设置为一个新值。你不需要所有的连接。这是一个文字字符串。

当然,在实际应用程序中,您永远不会将密码存储为纯文本。


推荐阅读