UPDATE ERRO DOUBLE

HOSTTOTA 13/03/2013 16:09:10
#420406
estou com erro no update do sql

erro = update sub_password_table set no tipo double



 oSQLConn.Open()
cmd.CommandText = [Ô]UPDATE sub_password_table SET CharPassword = CONVERT(VARBINARY(72), PWDENCRYPT([ô][Ô] + txtSenhaChar.Text + [Ô][ô])), CharQuestion = [ô][Ô] + valorcbchar + [Ô][ô], CharAnswer = CONVERT(VARBINARY(72),PWDENCRYPT([ô][Ô] + txtRespChar.Text + [Ô][ô])) WHERE (UserNum = [ô][Ô] + lbIDConta.Text + [Ô][ô]) [Ô]
cmd.ExecuteNonQuery()
cmd.CommandText = [Ô][Ô]



e no sql direto nao da nem um erro
KERPLUNK 14/03/2013 14:55:21
#420476
Sintaticamente, me parece correto. Apesar de estar usando concatenação de string para formular queries, o que é muito perigoso. Coloque pra gente a mensagem certinha do erro...
HOSTTOTA 14/03/2013 15:02:06
#420477
KERPLUNK 14/03/2013 15:28:59
#420482
cmd.CommandText = [Ô]UPDATE sub_password_table SET CharPassword = CONVERT(VARBINARY(72), [txt-color=#e80000]PWDENCRYPT([ô][Ô] + txtSenhaChar.Text + [Ô][ô]))[/txt-color], CharQuestion = [ô][Ô] + valorcbchar + [Ô][ô], CharAnswer = CONVERT(VARBINARY(72),PWDENCRYPT([ô][Ô] + txtRespChar.Text + [Ô][ô])) WHERE (UserNum = [ô][Ô] + lbIDConta.Text + [Ô][ô]) [Ô]

Na parte em vermelho, deveria estar algo como:
NomeDoCampo = pwdencrypt([ô][Ô] + txtSenhaChar.Text + [Ô][ô]).....
HOSTTOTA 14/03/2013 15:30:51
#420483
[txt-color=#e80000] CharPassword [/txt-color]= CONVERT(VARBINARY(72), PWDENCRYPT([ô][Ô] + txtSenhaChar.Text + [Ô][ô]))

comando no sql 2008 nao da erro so dentro do vb
OCELOT 14/03/2013 21:48:14
#420504
Resposta escolhida
Eu diria para você usar parâmetros, se o problema for de conversão de tipos de dados o simples fato de você usar parâmetros e passar os dados no formato correto para eles já resolve isso, sem contar que concatenar SQL é pedir para ter problemas

Pelo que vi ali na SQL você está passando valores como string e convertendo para varbynary no caso dos campos CharPassword e CharAnswer, e os campos CharQuestion e UserNum estão sendo passados apenas como string mesmo, então a questão é qual é o formato destes campos no banco de dados, são mesmo varbinary (CharPassword e CharAnswer) e char ou varchar (CharQuestion e UserNum)?
HOSTTOTA 15/03/2013 07:38:25
#420507
sim são binários mais como disse o sql direto no manerger nao da um erro
so no vb
OCELOT 15/03/2013 09:50:00
#420511
E qual é o tipo dos campos CharQuestion e UserNum? Eles são mesmo campos com algum formato de texto (varchar, nvarchar, char, etc)?
HOSTTOTA 15/03/2013 09:53:31
#420512
CharPassword = VARBINARY
CharQuestion = int
CharAnswer = VARBINARY
UserNum = varchar(50)
OCELOT 15/03/2013 09:58:32
#420513
CharQuestion é um inteiro e você está passando o valor para ele como string, apesar do SQL Server converter automaticamente o valor pode ser que esteja ali o erro.

Uma coisa que você poderia fazer é pegar o valor final dessa SQL para a gente ver como está ficando, assim seria mais fácil achar o erro, se não souber como pegar ele acho que você pode simplesmente colocar um messagebox ali, tipo

cmd.CommandText = [Ô]UPDATE sub_password_table SET   CharPassword = CONVERT(VARBINARY(72), PWDENCRYPT([ô][Ô] + txtSenhaChar.Text + [Ô][ô])), CharQuestion = [ô][Ô] + valorcbchar + [Ô][ô], CharAnswer = CONVERT(VARBINARY(72),PWDENCRYPT([ô][Ô] + txtRespChar.Text + [Ô][ô])) WHERE (UserNum = [ô][Ô] + lbIDConta.Text + [Ô][ô]) [Ô]
MessageBox.Show(cmd.CommandText)
HOSTTOTA 15/03/2013 10:08:58
#420514
ja converti para inteiro e
ele nao deixa nem mostra msgbox
ele pula o resto no cmd.CommandText ja da o erro
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas