0

オートコンプリート ajax コントロールを使用して姓と名を検索しようとしています。しかし、「、」の近くで条件が期待されるコンテキストで指定された非ブール型の式のエラーが発生しています。私が間違っていることは何ですか?Words(0) 行でエラーが発生しています。ありがとう!

Public Function GetCompletionList(prefixText As String, count As Integer, ByVal contextKey As String) As String()
    Try
        Dim words As String() = prefixText.Split(New Char() {","c})
        Dim Con As SqlConnection
        Dim cmd As SqlCommand
        Con = New SqlConnection
        Dim test As String
        test = contextKey
        Con.ConnectionString = ""
        Con.Open()

        cmd = New SqlCommand
        cmd.Connection = Con
        cmd.CommandText = "SELECT NPI, [Entity Type Code], [Provider Last Name (Legal Name)], [Provider First Name],[Provider First Line Business Mailing Address], [Provider Business Mailing Address City Name], [Provider Business Mailing Address State Name], [Provider Business Mailing Address Postal Code] FROM NPIData WHERE ([Provider Business Mailing Address State Name] = @State) AND ('" & words(0) & "','" & words(1) & "' LIKE N'%' + @Provider + N'%') ORDER BY [Provider First Name]"
        cmd.Parameters.AddWithValue("@Provider", prefixText)
        cmd.Parameters.AddWithValue("@State", contextKey)
        Dim customers As List(Of String) = New List(Of String)
        Dim reader As SqlDataReader = cmd.ExecuteReader()


        While reader.Read
            customers.Add(reader("Provider Last Name (Legal Name)").ToString + ", " + reader("Provider First Name").ToString + "   " + reader("Provider First Line Business Mailing Address").ToString + "  " + reader("Provider Business Mailing Address City Name").ToString + ", " + reader("Provider Business Mailing Address State Name").ToString + "  " + reader("Provider Business Mailing Address Postal Code").ToString + "  " + reader("NPI").ToString)

        End While


        Con.Close()

        Return customers.ToArray
    Catch ex As Exception

    End Try

End Function
4

1 に答える 1

0

あなたが失敗していると言う行には、

('" & words(0) & "','" & words(1) & "' LIKE N'%' + @Provider + N'%')

word(0) に txt1 が含まれ、worda (1) に txt2 が含まれる場合、これは次のように評価されます。

'txt1','txt2'お気に入り ...

文字列のコンマ区切りリストを LIKE と比較することはできません。

words(0) と words(1) を連結して取得するつもりだったかどうかはわかりません

'txt1txt2' LIKE...

これは必要です

('" & words(0) & words(1) & "' LIKE N'%' + @Provider + N'%')

または個別の比較を行います。これには、

('" & words(0) & "' LIKE N'%' + @Provider + N'%' OR ' & words(1) & "' LIKE N'%' + @Provider + N'%')
于 2013-07-09T14:09:07.730 に答える