【问题标题】:How to make a String Array by reading a table?如何通过读取表格来制作字符串数组?
【发布时间】:2014-05-12 13:15:22
【问题描述】:

我目前的表单上有一个组合框,其中列出了美国所有州、波多黎各和哥伦比亚特区。

我需要将该组合框更改为在数组中包含所有状态代码的普通文本框,以便当用户单击“确定”按钮时,文本框通过“状态”数组得到验证,以确定所述代码是否存在.

如何使用查询将表信息加载到可以传输到文本框的数组中?

这是将信息放入组合框的当前代码

Private Sub LoadStateComboBox()
    Dim stateList As List(Of State)
    Try
        stateList = StateDB.GetStateList
        cboStates.DataSource = stateList
        cboStates.DisplayMember = "StateName"
        cboStates.ValueMember = "StateCode"
    Catch ex As Exception
        MessageBox.Show(ex.Message, ex.GetType.ToString)
    End Try
End Sub

-->11:47pm 通过将 DisplayMember 更改为 StateCode,comboBox 现在会显示代码。我可以将代码切换到一个普通的文本框,它就会在那里吗?

【问题讨论】:

  • 您希望数组是什么类型? State 对象数组或String 对象数组(取自原始stateList 中每个State 对象的某些属性?
  • 抱歉,我还是 VB 新手。我在 Access 中有一个名为 MMABOOKS.mdb 的文件,它有一个表“States”。我想读取 StateCode 列并将所有数据传输到字符串中?数组,这样当用户输入“WI”时,它会遍历数组并检查它的真实值。
  • 如果用户输入“ZA”,它会返回说 ZA 不是有效的状态码并显示错误消息

标签: arrays vb.net combobox textbox


【解决方案1】:

如果你想得到一个State 对象的数组,那真的很容易。你可以直接调用List(Of T).ToArray 方法,像这样:

Dim stateArray() As State = stateList.ToArray()

如果你想得到一个字符串数组,其中数组中的字符串取自原始列表中每个 State 对象的一个​​属性,这有点困难,但仍然很容易使用LINQ。例如,如果State 类包含StateCode As String 属性,您可以使用LINQ 获取所有状态代码的数组,如下所示:

Dim stateCodeArray() As String = stateList.Select(Of String)(Function(x) x.StateCode).ToArray()

【讨论】:

    猜你喜欢
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 2023-01-27
    相关资源
    最近更新 更多