Sql server 必须声明标量变量"@EmailID“;

Sql server 必须声明标量变量"@EmailID“;,sql-server,Sql Server,我得到了这个错误。我已在我的应用程序代码中声明了EmailID。不确定到底是什么错误让我做的 System.Data.dll中发生类型为“System.Data.SqlClient.SqlException”的未处理异常 必须声明标量变量“@EmailID” 在这一行代码上引发错误异常:var em=(int)cmd.ExecuteNonQuery() 您实际上并没有向@EmailId参数添加值。如果对@email和@PersonId执行此操作,则缺少@EmailId。Where iscmd.P

我得到了这个错误。我已在我的应用程序代码中声明了EmailID。不确定到底是什么错误让我做的

System.Data.dll中发生类型为“System.Data.SqlClient.SqlException”的未处理异常 必须声明标量变量“@EmailID”

在这一行代码上引发错误异常:var em=(int)cmd.ExecuteNonQuery()


您实际上并没有向@EmailId参数添加值。如果对@email和@PersonId执行此操作,则缺少@EmailId。

Where is
cmd.Parameters.AddWithValue(“@EmailId”,…)?另外,必读:谢谢。我不知道为什么我认为没有必要添加。谢谢。我确实加了。它修复了这个错误,但在同一行代码中抛出了另一个神秘的错误。System.Data.SqlClient.SqlException:'无效的对象名称'telfeon'。@user10489212我猜telfeon是您尝试更新的表的名称?确保拼写正确,并且连接到正确的数据库。再次检查表名。可能添加模式(xxx.telfeon)。我发现了错误。我不应该做复制粘贴。这个错误是我从updateLefon()复制的:(…但是现在它说:System.Data.SqlClient.SqlException:'无法更新标识列'EmailID'
public void UpdateEmailDB(ref Email email)
    {
        string UpdateTelefon = @"UPDATE telfeon
                    SET EmailAddress  = @email, PersonID = @PersonId
                    WHERE EmailID = @EmailID";

        using (SqlCommand cmd = new SqlCommand(UpdateTelefon, OpenConnection))
        {
            cmd.Parameters.AddWithValue("@email", email.EmailAddress);
            cmd.Parameters.AddWithValue("@PersonId", email.PersonID);

            var em = (int)cmd.ExecuteNonQuery(); 
        }
    }