Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 必须声明标量变量"@GenName“;_C#_Ado.net_Sqlconnection - Fatal编程技术网

C# 必须声明标量变量"@GenName“;

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

我在尝试运行下面的代码时遇到此错误。你知道我做错了什么吗?我对这个很陌生,很想让它发挥作用。到目前为止,在我之前提出的一个问题中,我没有从这个网站得到任何帮助。但在放弃stackoverflow之前,决定再给这个论坛一次机会

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。谢谢你,先生。