我无法从以下查询中提取我需要的SQL数据。我查看了MSDN并按照他们的示例,但由于某种原因,执行读取器没有读取数据并在单击按钮后将其返回到文本框。我添加了一个响应以确保连接打开,并且每次都按下它。这是代码的摘录,我从这里省略的唯一内容是sqlconnection细节:
protected void Button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
//set up the SQL command
SqlCommand command = new SqlCommand("Use Waste_Test; select * from Bidston_HWRC where MCN_No = @MCN", conn);
//open the server connection
conn.Open();
//define parameter for SQL query
command.Parameters.Add("@MCN", SqlDbType.Int);
command.Parameters["@MCN"].Value = TextBox17.Text;
Response.Write("<script>alert('You are connected')</script>");
//Execute the query on the server
SqlDataReader rdr = command.ExecuteReader();
Response.Write("<script>alert('It's worked')</script>");
while (rdr.Read())
{
TextBox6.Text = rdr["Waste_Description"].ToString();
}
}
}
答案 0 :(得分:0)
首先,您需要使用HasRows
以确保查询返回一些结果,如果没有记录返回,则可以在标签中显示消息。由于您从文本框中获取MCN
值,因此需要将其解析为int。请尝试以下代码。
protected void Button1_Click(object sender, EventArgs e)
{
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
SqlCommand command = new SqlCommand("select * from Bidston_HWRC where MCN_No = @MCN", conn);
conn.Open();
Command.Parameters.AddWithValue("@MCN", Int32.Parse(TextBox17.Text));
//Execute the query on the server
SqlDataReader rdr = command.ExecuteReader();
if(rdr.HasRows)
{
while (rdr.Read())
{
TextBox6.Text = rdr["Waste_Description"].ToString();
}
}
else
{
// show 'no records found'
}
rdr.Close();
conn.Close();
}
}