Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql vb.net将具有不同记录的单个数据库表中的数据库记录显示到不同的组合框中_Mysql_Vb.net_Combobox - Fatal编程技术网

Mysql vb.net将具有不同记录的单个数据库表中的数据库记录显示到不同的组合框中

Mysql vb.net将具有不同记录的单个数据库表中的数据库记录显示到不同的组合框中,mysql,vb.net,combobox,Mysql,Vb.net,Combobox,vb.net将具有不同记录的单个数据库表中的数据库记录显示到不同的组合框中 我有两个组合框,我想在每个组合框中显示不同的记录,我在数据库中只使用一个表,这段代码显示错误,嗯 我的表架构: | cid | cpos…….| cfname | cmname | clname | cyr | cparty| |1.|主席|约翰……|方舟……|史密斯。| 3……|荣耀……| Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As

vb.net将具有不同记录的单个数据库表中的数据库记录显示到不同的组合框中

我有两个组合框,我想在每个组合框中显示不同的记录,我在数据库中只使用一个表,这段代码显示错误,嗯

我的表架构:

| cid | cpos…….| cfname | cmname | clname | cyr | cparty|
|1.|主席|约翰……|方舟……|史密斯。| 3……|荣耀……|

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    con.ConnectionString = ("server=localhost;user id=root;database=db")
    Try
        con.Open()

        With cmd
            .Connection = con
            .CommandText = "SELECT CONCAT_WS(' ', cfname, cmname, clname,'from', cparty WHERE cpos like='President') AS fullname from candidate;"
        End With
        Dim dt As New DataTable

        With ComboBox1
            da.SelectCommand = cmd
            da.Fill(dt)
            .DataSource = dt
            .DisplayMember = "fullname"
            .ValueMember = "fullname"
        End With


        With cmd
            .Connection = con
            .CommandText = "SELECT CONCAT_WS(' ', cfname, cmname, clname,'from', cparty WHERE cpos like='Vice President') AS fullname from candidate;"
        End With
        With ComboBox2
            da.SelectCommand = cmd
            da.Fill(dt)
            .DataSource = dt
            .DisplayMember = "fullname"
            .ValueMember = "fullname"
        End With


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

看看你之前的问题,我认为你的命令文本应该是这样的

.Connection = con
.CommandText = "SELECT CONCAT_WS(' ', cfname, cmname, clname, cparty) as fullname " & _
               "from candidate WHERE cpos like='Vice President'"
这将把四列
cfname、cmname、clname和cparty
中的信息合并到一个名为fullname的列中,然后cpos字段上的where条件将提取“副总裁”或“总裁”角色

我还建议更改组合框上属性设置的顺序

 .DisplayMember = "fullname"
 .ValueMember = "fullname"
 .DataSource = dt
您还可以避免以这种方式执行两个查询以从数据库检索相同的信息

 With cmd
    .Connection = con

    ' If you have only President and Vice President in the candidate table 
    ' you could remove the where clause 
    .CommandText = "SELECT CONCAT_WS(' ', cfname, cmname, clname, cparty) as fullname, " & _
                   "cpos, cid from candidate WHERE cpos like='Vice President' OR " & _
                   "cpos like 'President'"
 End With
然后使用DataView作为组合框的数据源来分离数据

da.SelectCommand = cmd
da.Fill(dt)
With ComboBox1
   Dim dv = new DataView(dt, "cpos like 'President'", "", DataViewRowState.CurrentRows)
   .DisplayMember = "fullname"
   .ValueMember = "fullname"
   .DataSource = dv
End With
With ComboBox2
   Dim dv1 = new DataView(dt, "cpos like 'Vice President'", "", DataViewRowState.CurrentRows)
   .DisplayMember = "fullname"
   .ValueMember = "fullname"
   .DataSource = dv1
End With

很抱歉,这些疑问毫无意义。你想做什么?我想在第一个组合框中显示总统,在第二个组合框中显示副总统,记录在数据库中的同一个表中。你能添加表候选人的完整模式(每个字段的名称及其类型)吗。我编辑了我的帖子,它不工作了?Combobox2中没有显示副总裁,它在
中有错误,“像‘副总裁’这样的CPO”“,DataViewRowState.CurrentRows)
.DataSource=dv1
中,它说字符串常量必须以双引号结束。请刷新页面,可能在您使用此代码时我仍在修复小的拼写错误…..找不到列CPO?嗯,对,我们需要将其添加到查询中,再次更新答案