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

时间:2014-03-15 14:25:20

标签: c# postgresql

我正在使用PostgreSQL数据库,我想为不懂SQL的朋友制作数据显示器,但有时他需要获取一些信息。

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

我写了这样的东西(下面),我被卡住了 - 点击一个按钮后我想把我的查询的答案传递给textBox而我不能,尝试了很多解决方案。没有用。有人可以帮忙吗?

    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
    }

3 个答案:

答案 0 :(得分:1)

解决方案1:

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

解决方案2:

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

答案 1 :(得分:1)

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

如果您的column1是字符类型,则可以像使用它一样使用

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

答案 2 :(得分:-1)

要将文本传递给TextBox,您只需编写:

TextBoxName.Text = yourVariable.ToString();