C# 如何从SQL中获取数据并将其写入文本框?

C# 如何从SQL中获取数据并将其写入文本框?,c#,sql,sql-server,C#,Sql,Sql Server,我需要帮助 我搜索了很多,也尝试了很多,但我太糟糕了,无法独自完成我的项目 这是按钮搜索的代码。我想让Seek按钮以各自的数据填充文本框 private void SeekClick(object sender, EventArgs e) { if (TBCusNumber.Text != "") { string Number = TBCusNumber.Text; var Conn = new

我需要帮助

我搜索了很多,也尝试了很多,但我太糟糕了,无法独自完成我的项目

这是按钮搜索的代码。我想让Seek按钮以各自的数据填充文本框

    private void SeekClick(object sender, EventArgs e)
    {
        if (TBCusNumber.Text != "")
        {
            string Number = TBCusNumber.Text;

            var Conn = new SqlConnection();
            Conn.ConnectionString = ConfigurationManager.ConnectionStrings["WindowsFormsApp1.Properties.Settings.DataBase"].ConnectionString;

            var Cmd = new SqlCommand();
            Cmd.Connection = Conn;
            Cmd.CommandText = "SELECT * FROM CustomerList WHERE CustomerNumber = " + Number;

            var DataAdapter = new SqlDataAdapter(Cmd);
            DataSet DataSet = new DataSet();
            DataAdapter.Fill(DataSet, "CustomerList");

            CusView.DataSource = DataSet;
            CusView.DataMember = "CustomerList";
        }
    }
这是数据表。

这是当我在文本框中输入3并按下搜索按钮时发生的情况。


因此,在这里,我希望所有文本框都由我搜索的数据填充。

查询只会得到一行,对吗

所以就这样给,

txtFirstName.Text = DataSet.Tables[0].Rows[0]["FirstName"].ToString();
txtLasttName.Text = DataSet.Tables[0].Rows[0]["LastName"].ToString();

这样,您需要将值分配给相应的文本框。

有三个问题需要解决

  • 您忘记打开与DB的连接,请添加
    Conn.open()执行sql命令之前
  • 您需要向SQL注入添加参数
  • 请使用
    使用
    它将帮助您使用外部资源返回内存
  • 填写
    数据集
    时,您可以获取数据,然后填写文本框

    你可以这样跟着

    private void SeekClick(object sender, EventArgs e)
    {
        if (TBCusNumber.Text != "")
        {
            string Number = TBCusNumber.Text;
    
            using (var Conn = new SqlConnection())
            {
                Conn.ConnectionString = ConfigurationManager.ConnectionStrings["WindowsFormsApp1.Properties.Settings.DataBase"].ConnectionString;
                using (var Cmd = new SqlCommand())
                {
                    Cmd.Connection = Conn;
                    Cmd.CommandText = "SELECT * FROM CustomerList WHERE CustomerNumber = @Number";
    
                    Cmd.Parameters.AddWithValue("@Number", Number);
                    //You miss to add Conn.Open()
                    Conn.Open();
                    using (var DataAdapter = new SqlDataAdapter(Cmd))
                    {
                        DataSet DataSet = new DataSet();
                        DataAdapter.Fill(DataSet, "CustomerList");
                        CusView.DataSource = DataSet;
                        CusView.DataMember = "CustomerList";
    
                        //when the DataSet be filled you can get the data then fill in textbox
                        txt_firstName.Text = DataSet.Tables[0].Rows[0]["FirstName"].ToString();
                    }
                }
            }
        }
    }
    

    请在此处提供文本代码,而不是图像…更改为文本提示,与您的问题无关
    SqlConnection
    SqlCommand
    SqlDataAdapter
    都是
    IDisposable
    ,所以应该在
    中使用
    块。但是所有这些都是对他的代码的更正,他的问题的答案如何?他想将数据写入文本框。是的,这是我的问题。但是谢谢你的更正。好的,我真的很想你的问题,我的失败:(.你能从
    CustomerList
    告诉我你的表格方案吗?因为我需要知道绑定数据的名称谢谢你的更正。问题得到了回答。@JungminKoo好的,我明白了:)