阵营@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();
}
}
}
答案 0 :(得分:1)
这是正常的,因为您尝试将NOME
设置为@NOME
SET ... NOOME = @NOME
您已经NOOME
已经 @NOME
WHERE NOME = @NOME
您的更新有点像;
UPDATE pescador SET ... NOME = 'Somecharacters' ... WHERE NOME = 'Somecharacters'
显然,您尝试自行更新NOME
列。这就是为什么你看不到任何改变的原因。