0
我希望有基本上有一个文本框,要求一个ID,然后有一个按钮按下时发送ID的查询是这样的:C#ExecuteReader()错误。需要输出中的SQL查询文本框
str = "SELECT TOP 1 [Sender Name],[Subject] from [OLE DB Destination] WHERE [CHAT #] ='" + textBox1.Text + "'";
然后将该查询的结果输出到文本框或几个文本框中,以便增加要输出的行数。
现在我有这个,但它不工作:
namespace testing
{
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("Data Source=USBA01\\OU3;Initial Catalog=HOU_Project;Integrated Security=True");
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string query = "SELECT TOP 1 [Sender Name],[Subject] "
+ " from[OLE DB Destination] WHERE[CHAT #] = :chatId ";
con.Open();
using (con)
{
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("chatId", textBox1.Text);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
reader.Read();
textBox2.Text = reader[0] + " " + reader[1];
}
reader.Close();
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
}
}
我与这条线得到一个“不正确的语法”错误:
SqlDataReader reader = cmd.ExecuteReader();
我是新来的C#,所以我会非常感谢你的帮助。
您的sql查询无效。首先对服务器运行查询。你可以试一下:SELECT TOP 1 [你的col]从[你的数据库] WHERE [你的col] = @param – lucas
删除聊天ID前面的冒号。您可以用“if(reader.Read())”代替HasRows和Read()行。 – LarsTech