【问题标题】:Save all items of Listbox to access Database Table in VB.Net保存列表框的所有项目以访问 VB.Net 中的数据库表
【发布时间】:2015-02-12 06:52:43
【问题描述】:

我正在做一个项目,但又碰壁了。我有一个列表框,里面有一些数学运算(即“1+2=3”)。我正在尝试将列表框中的所有项目保存到访问数据库中,我想我已经接近了。数据库有两个我手动输入的条目,但是当我使用以下代码时,我只在列表框中得到-1(加上两个手动条目)(当我清除列表框并将数据库加载到列表框中时)。另一个问题是我需要将数据库限制为 10 行,我不知道该怎么做。我想做的是每次保存到数据库时检查数据库,看看它有多少行。如果我要保存的列表框项目的数量将超过数据库中的 10 行,则清除数据库并从 0 行开始。这是我的代码(仅尝试保存到数据库):

con.ConnectionString = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Mathops.accdb; Persist Security Info=False;"
    Dim cmd As New OleDbCommand
    Dim var1 As String
    con.Open()

    cmd.Connection = con
    Try
        For i As Integer = 0 To lstDisplay.Items.Count - 1
            var1 = lstDisplay.Items.Item(i).ToString
            cmd.CommandText = ("INSERT into Records (Operations) VALUES(" + var1 + ")")
            cmd.ExecuteNonQuery()

        Next
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
    con.Close()

感谢您提供的任何帮助!

约翰

哦...数据库有 2 个字段; ID 和操作,其中 ID 是主键。

【问题讨论】:

    标签: vb.net ms-access listbox


    【解决方案1】:

    尝试使用 listdisplay.items(i) 从列表框中获取文本。

    然后整理一下这10项问题:

    如果您执行 SQL 查询: SELECT Max(id) FROM Records 将为您提供表中最大的 id 值

    然后检查你得到的值是否 >= 10,如果它是使用 SQL: DELETE FROM Records 清除表。

    【讨论】:

    • 感谢您的回复!我最初确实尝试过。问题是它根本不会抛出任何异常,只是不会将任何内容保存到数据库中。如果我单击保存按钮,然后清除列表框,然后加载数据库,我会得到全-1。但是当我检查数据库时,那里没有保存任何内容。
    • 将您的 SQL 导出到剪贴板并仔细查看它,以便您了解它正在尝试做什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    相关资源
    最近更新 更多