Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用VB和DataRow Select语句时出现参数语法错误_Vb.net_Parameters_Datarow - Fatal编程技术网

Vb.net 使用VB和DataRow Select语句时出现参数语法错误

Vb.net 使用VB和DataRow Select语句时出现参数语法错误,vb.net,parameters,datarow,Vb.net,Parameters,Datarow,有人能告诉我为什么我要硬编码参数值吗,这行代码有效 Dim result() As DataRow = dtGroupMaster.Select("GroupID = 'TDAX015A'") 但是如果我尝试使用我正在传递的实际参数,这一行不起作用 Dim result() As DataRow = dtGroupMaster.Select("GroupID = @cGID") 我得到一个错误: 找不到列 以下是整个功能: Private Function GetGroup(ByVal c

有人能告诉我为什么我要硬编码参数值吗,这行代码有效

Dim result() As DataRow = dtGroupMaster.Select("GroupID = 'TDAX015A'")
但是如果我尝试使用我正在传递的实际参数,这一行不起作用

Dim result() As DataRow = dtGroupMaster.Select("GroupID = @cGID")
我得到一个错误:

找不到列


以下是整个功能:

Private Function GetGroup(ByVal cGID As String) As Boolean

    Dim lValidGroup = False

    Dim dtGroupMaster As DataTable = NewBenefitsDataSet.GroupMaster

    'Test valid group
    cGID = "TDAX015A"

    ' Dim result() As DataRow = dtGroupMaster.Select("GroupID = @cGID")  - doesn't work

    'Dim result() As DataRow = dtGroupMaster.Select("GroupID = " + cGID) - doesn't work

    Dim result() As DataRow = dtGroupMaster.Select("GroupID = 'TDAX015A'")  - works fine

    For Each row As DataRow In result
        lValidGroup = True
    Next

    MessageBox.Show(lValidGroup)

    Return lValidGroup
End Function

更新:我用这个语法让它工作


Dim result()作为DataRow=dtGroupMaster.Select(“GroupID=”“+cGID+””)

只是为了澄清一下,我添加了“Test Valid Group”这一行,如果我从调用程序中传递了函数,就试图强制函数-put,我得到了相同的结果。的语法似乎没有使用参数的任何规定。您可能打算将
Dim result()作为DataRow=dtGroupMaster.Select($“GroupID='{cGID}')
$
执行“字符串插值”,并且需要在值周围加上单引号。如果您使用的是早期的VS,则
Dim result()作为DataRow=dtGroupMaster。选择(“GroupID=”&cGID&“”)
。请注意,VB.NET中的字符串连接运算符是
&
,而不是
+
。你可以用后者得到不想要的结果。谢谢安德鲁,我做了这个改变,效果很好……感谢你。@Jeffreyclark你可以接受你自己的答案。它不会给你重复次数,但会将问题标记为已回答。