You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用VB.NET将数据库表中的数据转换为字符串数组?

完善VB.NET读取数据库并转换为字符串数组的代码

看起来你已经在做从数据库读取课程数据并展示到ListView的工作,同时想要把读取到的数据转换成字符串数组对吧?我来帮你把代码补全,顺便优化几个关键点:

完整代码示例

' 假设conn已经是打开的SqlConnection对象
Dim strQ As String = "SELECT * FROM Courses"
Dim cmd As New SqlCommand(strQ, conn)
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet()
da.Fill(ds, "Courses")

' 给ListView添加列头
For Each col As DataColumn In ds.Tables(0).Columns
    Me.ListView1.Columns.Add(col.ColumnName)
Next

' 用来存储所有行的字符串数组(用List更灵活,行数不确定时很方便)
Dim courseDataList As New List(Of String())
Dim courseTable As DataTable = ds.Tables(0)

' 遍历每一行数据,转换为字符串数组并添加到ListView
For Each row As DataRow In courseTable.Rows
    ' 初始化当前行的字符串数组,长度等于列数
    Dim rowStringArray(courseTable.Columns.Count - 1) As String
    
    For colIndex As Integer = 0 To courseTable.Columns.Count - 1
        ' 处理数据库空值(DBNull),避免直接ToString报错
        rowStringArray(colIndex) = If(row(colIndex) Is DBNull.Value, "", row(colIndex).ToString())
    Next
    
    ' 把当前行的字符串数组加入集合
    courseDataList.Add(rowStringArray)
    
    ' 同时添加到ListView(直接用字符串数组初始化ListViewItem更简洁)
    Me.ListView1.Items.Add(New ListViewItem(rowStringArray))
Next

' 如果需要转换成二维字符串数组,直接调用ToArray即可
Dim courseStringArray As String()() = courseDataList.ToArray()

几个重要的优化点

  • 处理DBNull值:数据库中的空字段会返回DBNull.Value,直接调用ToString()会引发异常,这里用If运算符判断,把空值转为空字符串。
  • 用List存储数组:因为查询返回的行数是不确定的,用List(Of String())动态添加每行数据比预先声明二维数组更灵活,最后可以轻松转成标准的二维字符串数组。
  • 简化ListView列头添加:直接遍历DataColumn集合比用索引循环更直观易读。
  • 简化ListView项添加:ListViewItem支持直接传入字符串数组来初始化,省去了手动添加子项的步骤。

内容的提问来源于stack exchange,提问作者Viper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:39:18