【问题标题】:Display array in combobox在组合框中显示数组
【发布时间】:2016-08-04 20:15:27
【问题描述】:

这就是我无法绑定的错误

    Dim STSQL = <sql>SELECT Employee_id, First_name, MIDDLE_INITIAL, last_name,
       (Employee_id || ' ' || First_name || ' ' || last_name) As EmpName
    FROM mpcs.Employee</sql>.Value


    rsMPCS = MPCS_SELECT_SQL(UCase(STSQL), rsMPCS)

    dtEmp = New DataTable
    dtEmp.Load(rsMPCS)

    cboEmployee.DataSource = dtEmp
    cboEmployee.DisplayMember = "EmpName"
    cboEmployee.ValueMember = "ID"

【问题讨论】:

  • 我不知道rsMPCSMPCS_SELECT_SQL 是什么。该错误是 Oracle 错误,因为在 Oracle 上,CONCAT 需要 2 个且仅 2 个参数。所以只需将几个粘合在一起:techonthenet.com/oracle/functions/concat.php 并在此处显示stackoverflow.com/questions/1619259/…(假设它 Oracle - 我只是在继续错误,我以为你以前的 Q 有 MySQL)。
  • 您显然从未使用过绑定数据源。 ValueMember 和 DisplayMember 应该是要绑定到的属性或成员的名称。在这种情况下,它们将是数据表中的列名。您没有名为Id 的列,请使用Employee_id
  • 我很新手我知道。不过,在这个网站上这样做对我有很大帮助,我会记笔记,我会保存所有内容,最终我会变得更好。所以现在当我做cboEmployee.SelectedValue 时,它总是会给我选择正确的Employee_ID?

标签: arrays vb.net combobox


【解决方案1】:

先改这个

Public ArrEmployee(3, 0) As String

Dim x as Integer = number of employees( if you don't know put it larger than expected)
Public ArrEmployee(x, 3) As String

那么这部分应该是这样的

ArrEmployee(x, 0) = rsMPCS("Employee_id")
ArrEmployee(x, 1) = rsMPCS("First_name")
ArrEmployee(x, 2) = rsMPCS("MIDDLE_INITIAL")
ArrEmployee(x, 3) = rsMPCS("last_name")
x += 1

最后当你想添加到组合框时

For x = 0 To UBound(ArrEmployee, 2) - 1
    Dim textToAdd As String = String.Format("{0} {1} {2} {3}", ArrEmployee(x, 0), ArrEmployee(x, 1), ArrEmployee(x, 2), ArrEmployee(x, 3))
    cboEmployee.Items.Add(textToAdd)
Next

也就是说,你真的应该创建员工类,然后列出该类。从长远来看,它会更容易,更整洁,做得更好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多