必须声明标量变量 "@**"的疑难问题!
代码如下:
using (SqlConnection conn = new SqlConnection(@"Persist Security Info=False;Integrated Security=SSPI;Initial Catalog=BYSJ;server=(local)"))
                         {
                                 conn.Open();
                                 using (SqlCommand cmd = new SqlCommand())
                                 {
                                         cmd.CommandText = "select * from BookInformation where BookStuNum=@StuNum";
                                         cmd.Parameters.Add(new SqlParameter("StuNum", label10.Text));
                                         SqlDataAdapter adapter = new SqlDataAdapter(cmd.CommandText ,conn);
                                         DataSet dataset = new DataSet();
                                         adapter.Fill(dataset, "BookInformation");
                                         adapter.FillSchema(dataset, SchemaType.Source, "BookInformation");
                                         DataTable table = dataset.Tables["BookInformation"];
                                         dataGridView1.DataSource = dataset.Tables["BookInformation"];
                                 }
                         }
请问下这个代码为什么会在  adapter.Fill(dataset, "BookInformation");这里报错,说必须声明标量变量 "@StuNum"。
但是如果不用参数化查询,而是以实际字符代替"@StuNum"却能查询成功,这是为什么?请指正!
------解决方案--------------------
cmd.Parameters.Add(new SqlParameter("@StuNum", label10.Text));