vb.net - 整数类型的值无法转换为数据表 vn.net
问题描述
我正在尝试创建树视图,但有些错误我无法修复
Sub CREATENODE()
Dim TRN As New TreeNode
Dim DT As New DataTable
DT.Clear()
DT = ACCOUNTTableAdapter.TREE_ACCOUNT()
For I As Integer = 0 To DT.Rows.Count - 1
If DT.Rows(I)(9).ToString() = "00000000-0000-0000-0000-000000000000" Then
TRN = New TreeNode(DT.Rows(I)(3).ToString() + " " + DT.Rows(I)(4).ToString())
TRN.Tag = DT.Rows(I)(1).ToString()
If DT.Rows(I)(7).ToString() <> "0" Then
TRN.ImageIndex = 0
TRN.SelectedImageIndex = 0
Else
TRN.ImageIndex = 1
TRN.SelectedImageIndex = 1
End If
TreeView1.Nodes.Add(TRN)
End If
Next
''For Each NODE As TreeNode In TreeView1.Nodes
'' CHELD(NODE)
'Next
End Sub
解决方案
这是无稽之谈
Dim TRN As New TreeNode
Dim DT As New DataTable
DT.Clear()
DT = ACCOUNTTableAdapter.TREE_ACCOUNT()
您创建一个 New TreeNode,然后在循环内用另一个 New TreeNode 覆盖它。只需将 Dim 放在 if 之后的循环内。
Dim TRN = New TreeNode($"{row(3)} {row(4)}")
您创建了一个全新的 DataTable。然后当它不可能有任何东西时你清除它。然后你把它扔掉并分配一个不同的 DataTable 给它。
做就是了
Dim DT = ACCOUNTTableAdapter.TREE_ACCOUNT()
我使用 For Each 循环简化了您的代码。另外,我使用并插入了字符串前面的 $ 指示的字符串。变量可以插入用大括号 { } 包围的位置。
至于实际问题,您需要使用 New 关键字创建表适配器的实例。然后调用相应的方法。一个简单的应用程序将只使用.GetData
.
Private Sub CREATENODE()
Dim DT = (New ACCOUNTTableAdapter).TREE_ACCOUNT() 'See what intellisense offers. It may be just .GetData
For Each row As DataRow In DT.Rows
If row(9).ToString() = "00000000-0000-0000-0000-000000000000" Then
Dim TRN = New TreeNode($"{row(3)} {row(4)}")
TRN.Tag = row(1)
If row(7).ToString() <> "0" Then
TRN.ImageIndex = 0
TRN.SelectedImageIndex = 0
Else
TRN.ImageIndex = 1
TRN.SelectedImageIndex = 1
End If
TreeView1.Nodes.Add(TRN)
End If
Next
End Sub
提示:为什么不将整行放在Tag
属性中。通过将标签转换回 DataRow,您将可以访问所有字段。
推荐阅读
- bitmap - 在位板上找到对角线的计算可行方法
- c# - 我如何在不同的班级中使用按钮、计时器等
- r - 从 GitHub 错误安装包 - 可能是文件路径
- python - 直接播种 CPython 的 Mersenne Twister
- python - 如何检查二维 python 列表是否仅包含数字 1
- python - 如何在 GPU 设备上使用权重运行 tensorflow softmax_cross_entropy?
- r - 可变长度不同(为 'chemdate' 找到)
- c# - 无法在构造函数中执行按钮单击
- excel - Why do I get a 1004 error when adding a key using SortFields.Add2?
- c# - Tryparse 不会仅将日期时间转换为日期