ADODB.Recordset:使用麻烦的名称引用列-vb6解决方案在vb .net中失败

时间:2019-04-03 22:10:32

标签: .net vb.net adodb recordset

我有一些要移到.NET的旧vb6代码。它使用ADODB记录集,并且某些列名很麻烦:以数字开头或包含空格。 VB6通过将它们括在方括号中来工作,但是VB .NET引发了编译错误。

参考典型的列名:

rsVals!Break1Yr4

有关麻烦的列名的引用:

rsVals![1_yr]

rsVals![Gross 1 Year]

示例代码:

Dim rsVals As New ADODB.Recordset
rsVals.Open("Mf_BarChart", conn)
Dim Net1Yr, Gross1Yr
Net1Yr = rsVals![1_Yr]
Gross1Yr = rsVals![Gross 1 Year]

在VB6上可以正常编译。但是,在.NET中,对[1_Yr]的引用给出了“期望的标识符”,对[Gross 1 Year]的引用给出了“括号括起来的标识符缺少结束符']'”“ 我还无法提出可接受的语法。有谁知道该怎么做?

1 个答案:

答案 0 :(得分:1)

请尝试使用记录集上的Fields属性,而不要使用!表示法:

Net1Yr = rsVals.Fields("1_Yr")
Gross1Yr = rsVals.Fields("Gross 1 Year")

您不需要在Fields属性的列名上使用方括号-尽管如果您在select语句的列列表中包括该列,那么那里(仍然)仍需要使用方括号。