将sql查询结果传递给文本框

本文关键字:文本 sql 查询 结果 | 更新日期: 2023-09-27 17:50:28

我正在使用PostgreSQL DB,我想为我的朋友做一个数据显示,他不懂SQL,但有时他需要得到一些信息。

我想写一个Windows窗体应用程序,它应该允许他输入一些客户端id,结果给他一些关于这个客户端的数据。

我写了这样的东西(下面),我卡住了-点击一个按钮后,我想把我的查询的答案传递给一个文本框,我不能,尝试了许多解决方案。没有工作。有人能帮忙吗?

    private void btShowData_Click(object sender, EventArgs e)
    {
        NpgsqlConnection conn = new NpgsqlConnection("Server=someServer;Port=1234;User ID=some_user;Password=123456;Database=someDataBase;");
        conn.Open();
        NpgsqlCommand answer1 = new NpgsqlCommand("SELECT column1 FROM table1 WHERE id = :userId", conn);
        answer1.Parameters.Add(new NpgsqlParameter("userId", NpgsqlTypes.NpgsqlDbType.Integer));
        answer1.Parameters[0].Value = tbId.Text;
   // HERE IS MY PROBLEM - How to pass the answer1 result to the textbox
    }

将sql查询结果传递给文本框

我不太熟悉PostgresSQL,但我认为你可以使用ExecuteScalar方法。它返回第一行的第一列作为object

如果你的column1是字符类型,你可以这样使用;

...
answer1.Parameters[0].Value = tbId.Text;
string s = (string)answer1.ExecuteScalar();
TextBox1.Text = s;

方案一:

NpgsqlDataReader reader = answer1.ExecuteReader();
if(reader.Read())
{
    yourTextBox.Text = reader["column1"].ToString();
}

解决方案2:

yourTextBox.Text = answer1.ExecuteScalar().ToString();

要将文本传递给TextBox,您需要做的就是:

TextBoxName.Text = yourVariable.ToString();