必须声明标量变量“@GenName”
Must declare the scalar variable "@GenName"
我在尝试 运行 下面的代码时遇到此错误。对我做错了什么有任何见解吗?我对此很陌生,并且想让它工作得很糟糕。到目前为止,在我提出的上一个问题中,我从该站点获得的帮助为零。但是在放弃 Whosebug
之前决定再给这个论坛一个机会
protected void SaveButton_Click(object sender, EventArgs e)
{
SqlConnection myConnection =
new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=TESTdatabase;Integrated Security=True");
SqlCommand myCommand = new SqlCommand(
"INSERT into tblGenerator (GeneratorName, GeneratorAddress, GeneratorCity, GeneratorState, GeneratorZip, GeneratorPhone, GeneratorContact, GeneratorEPAID)" +
"VALUES (@GenName, @GenAdd, @GenCity, @GenState, @GenZip, @GenPhone, @GenContact, @GenEPAID), myConnection");
myCommand.Parameters.AddWithValue("@GeneratorName", GenName.Text);
myCommand.Parameters.AddWithValue("@GeneratorAddress", GenAdd.Text);
myCommand.Parameters.AddWithValue("@GeneratorCity", GenCity.Text);
myCommand.Parameters.AddWithValue("@GeneratorState", GenState.Text);
myCommand.Parameters.AddWithValue("@GeneratorZip", GenZip.Text);
myCommand.Parameters.AddWithValue("@GeneratorPhone", GenPhone.Text);
myCommand.Parameters.AddWithValue("@GeneratorContact", GenContact.Text);
myCommand.Parameters.AddWithValue("@GeneratorEPAID", GenEPAID.Text);
myConnection.Open();
myCommand.Connection = myConnection;
myCommand.ExecuteNonQuery();
myConnection.Close();
}
首先,Whosebug 很有帮助 :) 不要放弃这个平台。
现在回答您的问题:
您的 SQL 语句需要的参数是:
(@GenName, @GenAdd, @GenCity, @GenState, @GenZip, @GenPhone, @GenContact, @GenEPAID)
虽然您稍后为它们分配了不同的名称。
应该是:
myCommand.Parameters.AddWithValue("@GenName", GenName.Text);
myCommand.Parameters.AddWithValue("@GenAdd", GenAdd.Text);
myCommand.Parameters.AddWithValue("@GenCity", GenCity.Text);
myCommand.Parameters.AddWithValue("@GenState", GenState.Text);
myCommand.Parameters.AddWithValue("@GenZip", GenZip.Text);
myCommand.Parameters.AddWithValue("@GenPhone", GenPhone.Text);
myCommand.Parameters.AddWithValue("@GenContact", GenContact.Text);
myCommand.Parameters.AddWithValue("@GenEPAID", GenEPAID.Text);
使用 @parameter
时,您必须为具有相同确切名称的参数赋值。
我在尝试 运行 下面的代码时遇到此错误。对我做错了什么有任何见解吗?我对此很陌生,并且想让它工作得很糟糕。到目前为止,在我提出的上一个问题中,我从该站点获得的帮助为零。但是在放弃 Whosebug
之前决定再给这个论坛一个机会protected void SaveButton_Click(object sender, EventArgs e)
{
SqlConnection myConnection =
new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=TESTdatabase;Integrated Security=True");
SqlCommand myCommand = new SqlCommand(
"INSERT into tblGenerator (GeneratorName, GeneratorAddress, GeneratorCity, GeneratorState, GeneratorZip, GeneratorPhone, GeneratorContact, GeneratorEPAID)" +
"VALUES (@GenName, @GenAdd, @GenCity, @GenState, @GenZip, @GenPhone, @GenContact, @GenEPAID), myConnection");
myCommand.Parameters.AddWithValue("@GeneratorName", GenName.Text);
myCommand.Parameters.AddWithValue("@GeneratorAddress", GenAdd.Text);
myCommand.Parameters.AddWithValue("@GeneratorCity", GenCity.Text);
myCommand.Parameters.AddWithValue("@GeneratorState", GenState.Text);
myCommand.Parameters.AddWithValue("@GeneratorZip", GenZip.Text);
myCommand.Parameters.AddWithValue("@GeneratorPhone", GenPhone.Text);
myCommand.Parameters.AddWithValue("@GeneratorContact", GenContact.Text);
myCommand.Parameters.AddWithValue("@GeneratorEPAID", GenEPAID.Text);
myConnection.Open();
myCommand.Connection = myConnection;
myCommand.ExecuteNonQuery();
myConnection.Close();
}
首先,Whosebug 很有帮助 :) 不要放弃这个平台。
现在回答您的问题:
您的 SQL 语句需要的参数是:
(@GenName, @GenAdd, @GenCity, @GenState, @GenZip, @GenPhone, @GenContact, @GenEPAID)
虽然您稍后为它们分配了不同的名称。
应该是:
myCommand.Parameters.AddWithValue("@GenName", GenName.Text);
myCommand.Parameters.AddWithValue("@GenAdd", GenAdd.Text);
myCommand.Parameters.AddWithValue("@GenCity", GenCity.Text);
myCommand.Parameters.AddWithValue("@GenState", GenState.Text);
myCommand.Parameters.AddWithValue("@GenZip", GenZip.Text);
myCommand.Parameters.AddWithValue("@GenPhone", GenPhone.Text);
myCommand.Parameters.AddWithValue("@GenContact", GenContact.Text);
myCommand.Parameters.AddWithValue("@GenEPAID", GenEPAID.Text);
使用 @parameter
时,您必须为具有相同确切名称的参数赋值。