SQL UPDATE没有改变

时间:2015-07-26 14:47:25

标签: c# sql parameters

阵营@NOME是Varchar类型,它的独特之处在于没有不变。

如果我在没有更改@NOME的情况下为其他人传递字符串参数,那么SQL其他阵营会发生变化,如果我尝试更改@NOME则不会更改任何内容。

代码:

public void Update_Pescador(int param_rgp, string param_nome, string param_end, string param_cel, string param_tel, string param_cid, string param_estado )
    {
        vsql = "UPDATE pescador SET RGP = @RGP, NOME = @NOME, ENDERECO = @ENDERECO, CIDADE = @CIDADE, ESTADO = @ESTADO, TELEFONE = @TELEFONE, CELULAR = @CELULAR WHERE NOME = @NOME";

        SqlCommand objcmd = null;

        if (this.Conectar())
        {
            try
            {
                objcmd = new SqlCommand(vsql, objCon);

                objcmd.Parameters.Add(new SqlParameter("@RGP", param_rgp));
                objcmd.Parameters.Add(new SqlParameter("@NOME", param_nome));
                objcmd.Parameters.Add(new SqlParameter("@ENDERECO",param_end));
                objcmd.Parameters.Add(new SqlParameter("@CIDADE",param_cid));
                objcmd.Parameters.Add(new SqlParameter("@ESTADO", param_estado));
                objcmd.Parameters.Add(new SqlParameter("@TELEFONE",param_tel));
                objcmd.Parameters.Add(new SqlParameter("@CELULAR",param_cel));
                objcmd.ExecuteNonQuery();
            }
            catch
            {
                throw;
            }
            finally
            {
                this.Desconectar();
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

这是正常的,因为您尝试将NOME设置为@NOME

SET ... NOOME = @NOME

您已经NOOME 已经 @NOME

WHERE NOME = @NOME

您的更新有点像;

UPDATE pescador SET ... NOME = 'Somecharacters' ... WHERE NOME = 'Somecharacters'

显然,您尝试自行更新NOME列。这就是为什么你看不到任何改变的原因。