Sql 更新查询不工作vb net
当我尝试使用下面的查询更新数据库时,我收到消息“update successful”,但这不是真的,我的数据仍然与以前一样 公共函数alterar()作为布尔值 Dim cd作为新的npgsql命令 Dim查询为字符串=“” 尝试 查询&=“更新[Caixa]集合Recibo=”&iRecibo&“”,中心存储=”&sCentroCusto&“,数据=”&sData&“,Dia=”&sDia&“_ Mes=“&sMes&”,Ano=“&sAno&”,CentroCustoResumo=“&sCentroCustoResumo&”,CodSubCentroCusto=“&sCodSubCentroCusto&”_ DescSubCentroCusto='”&sdescssubcentrocusto&'、Eventos='、&sEventos&'、Historico='、&sHistorico&'_ 迪涅罗=“&sDinheiro&”,支票=“&sCheque&”,卡托=“&sCartao&”,存款=“&sDepositoDireto&”_ Total='”&sTotal&“其中Recibo='”&iRecibo.ToString() 如果Conexao.NonQuery(cd),则 sStatus=“O Recibo”&iRecibo和“foi alterado com successo!” 返回真值 如果结束 特例 sStatus=ex.消息 结束尝试 返回真值 端函数 私有子按钮4\u单击(发送者作为对象,e作为事件参数)处理按钮4。单击 尺寸c作为新的Caixa() 尝试 如果是TextBox1.Text“”,则 c、 Recibo=CInt(TextBox1.Text) 如果c.excluir()那么 MessageBox.Show(c.Status) CaixaLoad() 其他的 MessageBox.Show(c.Status) 如果结束 其他的 MessageBox.Show(“Nenhum registro seleconado!”) 如果结束 特例 'MessageBox.Show(例如Message) 结束尝试 端接头 我的查询有什么问题?正在修复代码 请尝试以下代码:(1)我使用了Sql 更新查询不工作vb net,sql,vb.net,postgresql,npgsql,Sql,Vb.net,Postgresql,Npgsql,当我尝试使用下面的查询更新数据库时,我收到消息“update successful”,但这不是真的,我的数据仍然与以前一样 公共函数alterar()作为布尔值 Dim cd作为新的npgsql命令 Dim查询为字符串=“” 尝试 查询&=“更新[Caixa]集合Recibo=”&iRecibo&“”,中心存储=”&sCentroCusto&“,数据=”&sData&“,Dia=”&sDia&“_ Mes=“&sMes&”,Ano=“&sAno&”,CentroCustoResumo=“&sCe
cmd.ExecuteNonQuery()
而不是Conexao.NonQuery(cd)
(2)未将query
字符串分配给cmd
命令,并且(3)postgresql中未使用[]
括号,如果需要,您必须使用双引号。(4) 在使用npgsqlcommand类时,建议使用Using
Public Function alterar() As Boolean
Dim query As String = ""
Try
query = "UPDATE Caixa SET Recibo = '" & iRecibo & "' , CentroCusto = '" & sCentroCusto & "' , Data = '" & sData & "' , Dia = '" & sDia & "' , " & _
"Mes ='" & sMes & "', Ano = '" & sAno & "' , CentroCustoResumo = '" & sCentroCustoResumo & "' , CodSubCentroCusto ='" & sCodSubCentroCusto & "', " & _
"DescSubCentroCusto ='" & sDescSubCentroCusto & "', Eventos ='" & sEventos & "', Historico = '" & sHistorico & "' , " & _
"Dinheiro = '" & sDinheiro & "', Cheque = '" & sCheque & "', Cartao = '" & sCartao & "', DepositoDireto = '" & sDepositoDireto & "', " & _
"Total ='" & sTotal & "' WHERE Recibo = '" & iRecibo.ToString & "'"
Using cmd As New npgSqlCommand
cmd.CommandText = query
cmd.Connection = conn
cmd.ExecuteNonQuery()
sStatus = "O Recibo " & iRecibo & " foi alterado com sucesso!"
End Using
Return True
Catch ex As Exception
sStatus = ex.Message
Return False
End Try
End Function
参数化查询
建议使用参数化查询以获得更好的安全性(针对sql注入更安全)和更好的性能,有关详细信息,您可以按照以下类似问题进行操作: