试图从数据集保存到数据库 - 不能很好地工作

时间:2014-06-10 18:57:02

标签: vb.net oledbcommand

我有一份报告,我填写了一个数据表和数据集 - 以及一些水晶报告,以及那些工作。我试图从数据表中获取我的更新回到数据库 - 我已经看到了很多不同的代码并且我已经尝试过使用它但我认为它可能让我感到困惑而不是帮助。

  Private Sub BtnUpdate_Click(sender As System.Object, e As System.EventArgs) Handles BtnUpdate.Click
    Me.Validate()
    Dim cndl As New OleDbConnection(ConnectionStrings("deputylog").ConnectionString)

    Dim Command = New OleDbCommand("UPDATE Case_log.SCRNO, Case_log.JOBNO, Case_log.DEPUTY, Case_log.VICTIM_COMPLAINT, " & _
      "Case_log.TYPE_INVEST, Case_log.WHERE, Case_log.REPORT_DATE, Case_log.ARREST_DATE, Case_log.REPORT_CODES, " & _
      "Case_log.EVIDENCE_SECURED, Case_log.REVIEW_DATE, Case_log.DISP_DATE, Case_log.STATUS, Case_log.SUPP_REPT_DATE ", cndl)
    cndl.Open()
    Command.ExecuteNonQuery()


    'adaptor1.UpdateCommand = Command
    MsgBox("Update Successful")

更新字符串与我的选择字符串相同,但是当我尝试更新时出现语法错误。任何想法都会非常有用。谢谢!

1 个答案:

答案 0 :(得分:0)

您是否只是尝试更新数据库中的1行?该语句不是更新语句的正确SQL语法。

在T-Sql中,基本更新语句的格式为:

Update table CASE_LOG set scrno = [some value], deputy = [some value], ...
where id = [some id]

在此示例中,您将更新case_log表并将字段设置为提供的值,其中行的id等于标识它的内容。在您的代码中,您需要将其格式化为sql的格式,这里是伪代码以帮助您入门:

Dim command = New OleDbCommand(string.format("Update Table case_log set scrno = {0}, jobno = {1}, deputy = {2} where id = '[someid]'", scrno.ToString(), jobno.ToString(), deputy.ToString()), cnd1)