将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
}
我不太熟悉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();