我正在使用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
}
答案 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();