mysql - 如何在vb.net中建立对sql数据库的动态查询

标签 mysql vb.net combobox

我想通过使用动态查询来填充组合框。为此,创建了名为 sqlcnn 的外部类。这个类定义了与sql数据库的连接并且它可以正常工作。下面是代码:

Imports System.Data.SqlClient

公共(public)类sqlcnn

Public cnn As New SqlConnection("Data Source=(local)\sqlexpress...)
Public Command As SqlCommand
Public txt() As String
Public i As Integer

Public Sub execute_command(ByVal query As String)

    Try
        cnn.Open()

        Command = New SqlCommand(query, cnn)

        Dim readerr = Command.ExecuteReader

        ReDim txt(readerr.FieldCount - 1)

        While readerr.Read


            For i = 0 To readerr.FieldCount - 1
                txt(i) = readerr.Item(i)

            Next i


        End While

        MsgBox("Connection Open ! ")
        cnn.Close()
    Catch ex As Exception
        MsgBox("Can not open connection ! ")
    End Try


End Sub

下课

如果我修改上面的代码,在 for 循环中添加一行:

 For i = 0 To readerr.FieldCount - 1
                txt(i) = readerr.Item(i)
                ComboBox1.Items.Add(txt(i))

            Next i

我可以立即填充组合框,没有任何问题。

问题是,当我尝试从名为 Form1 的主类填充组合框时。 该类定义了一个组合框1和一个按钮。代码如下:

Imports System.Data.SqlClient

公开课表格1

Private Sql As New sqlcnn
Dim i As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Sql.execute_command("select Car from shopcars")

    For i = 0 To (Sqlpol.txt.Length - 1)

        ComboBox1.Items.Add(Sqlpol.txt(i))

    Next i


End Sub

下课

结果是,在组合框中我们只能看到数据库的最后一项。完全,我不知道如何正确构建 for 循环。 我很感激你的帮助。

谢谢!

最佳答案

txt 是一个一维数组。 While 的每次迭代都通过索引 readerr.FieldCount 覆盖 txt 索引 0。这就是为什么它总是包含最后一行的数据。 您需要支持多行的不同数据结构。有很多选择。我建议使用 DataTable,因为您可以将其绑定(bind)到 ComboBox,而不是在循环中添加项目。

关于mysql - 如何在vb.net中建立对sql数据库的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29021731/

相关文章:

python - 从文件读取值,然后在 sql UPDATE 命令中传递值(python 脚本)

javascript - ASP.NET JQuery 从文本框值过滤列表框(区分大小写的问题)

JQuery 从下拉列表选择中打开 div 标签

c# - 以编程方式将项目添加到 ComboBox

Mysql复杂查询如果没有找到记录则生成计数为零的所有表

mysql - 使用 R 操作向量值

php - Laravel 根据距离对用户集合进行排序

asp.net - 将链接按钮单击从一个用户控件传递到另一个用户控件

java - Java 与 VB.net 中的 RGB 颜色

java - 我可以将 ComboBoxModel 转换为 int 吗?