UPDATE ERRO DOUBLE
estou com erro no update do sql
erro = update sub_password_table set no tipo double
e no sql direto nao da nem um erro
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
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...
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 + [Ô][ô]).....
Na parte em vermelho, deveria estar algo como:
NomeDoCampo = pwdencrypt([ô][Ô] + txtSenhaChar.Text + [Ô][ô]).....
[txt-color=#e80000] CharPassword [/txt-color]= CONVERT(VARBINARY(72), PWDENCRYPT([ô][Ô] + txtSenhaChar.Text + [Ô][ô]))
comando no sql 2008 nao da erro so dentro do vb
comando no sql 2008 nao da erro so dentro do vb
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)?
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)?
sim são binários mais como disse o sql direto no manerger nao da um erro
so no vb
so no vb
E qual é o tipo dos campos CharQuestion e UserNum? Eles são mesmo campos com algum formato de texto (varchar, nvarchar, char, etc)?
CharPassword = VARBINARY
CharQuestion = int
CharAnswer = VARBINARY
UserNum = varchar(50)
CharQuestion = int
CharAnswer = VARBINARY
UserNum = varchar(50)
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
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)
ja converti para inteiro e
ele nao deixa nem mostra msgbox
ele pula o resto no cmd.CommandText ja da o erro
ele nao deixa nem mostra msgbox
ele pula o resto no cmd.CommandText ja da o erro
Tópico encerrado , respostas não são mais permitidas