这是我为新应用程序的解决方案共享的代码的一部分。
当我执行此代码时,它会抛出异常"必须声明标量变量@ textBox1"
public partial class About : Page
{
SqlCommand cmd = new SqlCommand();
SqlConnection con = new SqlConnection();
protected void Page_Load(object sender, EventArgs e)
{
con.ConnectionString = "Data Source=.;Initial Catalog=carpro;Integrated Security=True";
con.Open();
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("Insert into Driver_Registration(Driver_Name,Driver_DOB,Driver_Address,License_Number,National_Insurance_Number,"+
"Email_Address,UK_History,Contact,Occupation,License_Details,Taxi_License_Number,"+
"Deposit_Details,Weekly_Rent) Values (@TextBox1,@TextBox2,@TextBox3,@TextBox4,@TextBox5," +
"@TextBox6,@TextBox7,@TextBox8,@TextBox9,@TextBox10,@TextBox11,@TextBox12,@TextBox13)",con);
cmd.Parameters.AddWithValue("@Driver_Name",TextBox1.Text);
cmd.Parameters.AddWithValue("@Driver_DOB", TextBox2.Text);
cmd.Parameters.AddWithValue("@Driver_Address", TextBox3.Text);
cmd.Parameters.AddWithValue("@License_Number", TextBox4.Text);
cmd.Parameters.AddWithValue("@National_Insurance_Number", TextBox5.Text);
cmd.Parameters.AddWithValue("@Email_Address", TextBox6.Text);
cmd.Parameters.AddWithValue("@UK_History", TextBox7.Text);
cmd.Parameters.AddWithValue("@Contact", TextBox8.Text);
cmd.Parameters.AddWithValue("@Occupation", TextBox9.Text);
cmd.Parameters.AddWithValue("@License_Details", TextBox10.Text);
cmd.Parameters.AddWithValue("@Taxi_License_Number", TextBox11.Text);
cmd.Parameters.AddWithValue("@Deposit_Details", TextBox12.Text);
cmd.Parameters.AddWithValue("@Weekly_Rent", TextBox13.Text);
cmd.ExecuteNonQuery();
Label1.Text = "Registration Successfull";
con.Close();
}
}
答案 0 :(得分:1)
您在INSERT
声明中使用的参数与您在cmd.Parameters.AddWithValue(..)
中创建的参数不同。将INSERT
参数替换为您实际创建的参数,例如@Driver_Name
。
另外,你应该移动你的
con.ConnectionString = "Data Source=.;Initial Catalog=carpro;Integrated Security=True";
con.Open();
按下按钮。基本上,您只打开一次连接,然后在按钮单击时关闭它。目前,没有重新启动应用程序就无法重新打开连接。
或者更好的是将其分割成自己的类/函数。 或者更好的是,在web.config中设置连接字符串,并使用依赖注入从那里调用它。
答案 1 :(得分:0)
指定参数:
VALUES(@Driver_Name,......
你有两个选择
1您可以将查询更改为:
cmd.Parameters.AddWithValue("@TextBox1",TextBox1.Text);
...
2您可以将AddWithValue更改为:
<Master Name='gamma'>
<Par1 Name='name1'>
<Value>0.</Value>
<Fix>1</Fix>
</Par1>
<Par2 Name='name2'>
<Value>0.</Value>
<Fix>1</Fix>
</Par2>
</Master>