【问题标题】:vb.net oledb Insert data into tablevb.net oledb 向表中插入数据
【发布时间】:2015-07-09 04:58:00
【问题描述】:

我想将数据添加到 vb.net 中的表中。 使用 Access、oledb 和 oledbcmmand。 表中所有列的属性都是一个短文本。 我尝试这段代码,但我无法插入数据。 我似乎理解错了oledb。 请指出错误的部分。

    Dim HCSDB As New OleDbConnection
    HCSDB = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\HCS\HCSDB.mdb")
    'Dim sQuery As String
    Dim oleCmd As New OleDbCommand
    Dim OleTran As OleDbTransaction

    Try
        HCSDB.Open()
    Catch ex As Exception
        MsgBox("Open err", MsgBoxStyle.OkOnly)
        Exit Sub
    End Try

    Try
        oleCmd.CommandText = "INSERT INTO InfoManage ( SchoolName, BeforeCheck, SendName, SendNum, RecvName, RecvNum, SendTime, SendMsg, UserPass) VALUES (@SchoolName, @BeforeCheck, @SendName, @RecvName, @RecvNum, @SendTime, @SMSCheck, @SendMsg, @UserPass)"
        oleCmd.Parameters.AddWithValue("@SchoolName", edtSchoolName.Text)
        oleCmd.Parameters.AddWithValue("@BeforeCheck", cBefore)
        oleCmd.Parameters.AddWithValue("@SendName", edtSendName.Text)
        oleCmd.Parameters.AddWithValue("@SendNum", edtSendTel.Text)
        oleCmd.Parameters.AddWithValue("@RecvName", edtRecvName.Text)
        oleCmd.Parameters.AddWithValue("@RecvNum", edtRecvTel.Text)
        oleCmd.Parameters.AddWithValue("@SendTime", sTime)
        oleCmd.Parameters.AddWithValue("@SendMsg", edtMsg.Text)
        oleCmd.Parameters.AddWithValue("@UserPass", edtPass.Text)

        OleTran = HCSDB.BeginTransaction
        oleCmd.Transaction = OleTran
        oleCmd.ExecuteNonQuery()
        OleTran.Commit()

        MsgBox("saved", MsgBoxStyle.OkOnly)
        'MsgBox(sQuery)
    Catch ex As OleDbException

        MsgBox("err", MsgBoxStyle.OkOnly)

    End Try
    HCSDB.Close()

End If

【问题讨论】:

  • 你得到的错误是什么? (删除 try catch 块或将 ex.ToString() 显示为 MsgBox 文本并检查您得到的错误)
  • imgur.com/bKdf8Vq 是删除 try catch 块错误

标签: vb.net oledbconnection oledbcommand dbconnection


【解决方案1】:

您没有将命令与任何地方的连接相关联。如果您确实查看了异常提供的错误消息,那么您就会看到。您需要设置命令对象的Connection 属性,或者将 SQL 语句和连接都传递给构造函数。

另外,为单个插入使用事务有什么意义?如果是出于学习目的,那是一回事,但是您需要学会在失败时回滚。但是在这种情况下没有什么可以回滚的,这证明了事务的无用性。事务的重点是如果后面的步骤失败,则回滚之前的成功步骤。您的代码中只有一步,因此没有指向交易。

【讨论】:

  • 我不知道为什么需要它。 ,不过,我复制了我老板的代码。
  • 您应该了解交易的用途,这样您就知道是否需要以及何时需要它们。简而言之,这个想法是能够作为一个单元执行多个操作,以便它们都成功或不成功。如果您只执行一项操作,那么交易毫无意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-20
  • 1970-01-01
  • 2012-07-13
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多