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

VB.NET双击TreeView节点加载CSV到DataGridView报InvalidCastException错误如何解决

报错根因定位

你触发的类型转换错误完全来自这行代码:

Dim Direccion As String = My.Computer.FileSystem.CurrentDirectory(NombreNodo)

My.Computer.FileSystem.CurrentDirectory是只读字符串属性,作用仅为返回当前程序的工作目录路径,本身不是可传入文件名拼接路径的方法。
当你给该属性后加括号传入字符串类型的文件名时,VB会默认把CurrentDirectory返回的字符串当作字符数组,尝试按索引取对应位置的字符,索引要求传入Integer类型参数,你传入的是字符串类型的文件名,因此触发Conversion from string "Book1.csv" to type 'Integer' is not valid报错。

修复方案

如果你的CSV文件存放在当前程序工作目录下,使用Path.Combine方法拼接目录和文件名即可,替换对应行代码为:

Dim Direccion As String = Path.Combine(My.Computer.FileSystem.CurrentDirectory, NombreNodo)

额外优化建议

  • 读取文件前增加文件存在判断,避免文件不存在触发新异常:
    If Not File.Exists(Direccion) Then
        MessageBox.Show("目标文件不存在")
        Exit Sub
    End If
    
  • Using代码块会在执行结束后自动释放包裹的资源,不需要手动调用TestReader.Close()和FileSystem.Close(),可删除这两行冗余代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:18:03