C# 必须声明标量变量"@GenName“;
我在尝试运行下面的代码时遇到此错误。你知道我做错了什么吗?我对这个很陌生,很想让它发挥作用。到目前为止,在我之前提出的一个问题中,我没有从这个网站得到任何帮助。但在放弃stackoverflow之前,决定再给这个论坛一次机会C# 必须声明标量变量"@GenName“;,c#,ado.net,sqlconnection,C#,Ado.net,Sqlconnection,我在尝试运行下面的代码时遇到此错误。你知道我做错了什么吗?我对这个很陌生,很想让它发挥作用。到目前为止,在我之前提出的一个问题中,我没有从这个网站得到任何帮助。但在放弃stackoverflow之前,决定再给这个论坛一次机会 protected void SaveButton_Click(object sender, EventArgs e) { SqlConnection myConnection = new SqlConnection(@"Data Source=.\sqle
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();
}
首先,Stackoverflow非常有用:)不要放弃这个平台 现在回答你的问题: 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
时,必须为具有相同确切名称的参数指定一个值。谢谢!我马上就要试试。不客气:)如果有帮助的话,请告诉我。好的,这消除了标量变量错误。但是现在在myCommand.ExecuteNonQuery()上抛出了一个错误,说语法不正确。您应该在值…
之前添加一个空格,例如:`VALUES…`[@GenName]与[@GeneratorName]不一样就像您前面的问题一样,连接对象不在双引号内。非常感谢您的回答,我被错误地认为应该在引号中放什么对象,并且使用了sql表中字段的名称。@B LarsTech先生说的是myConnection
,您也像前面的问题一样将其放在查询字符串中。您可以使用语法突出显示它。你应该打电话,你在打。啊啊啊哈。我现在明白了@GSerg。谢谢你,先生。