Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
Asp.net 本地化语言中的ado.net sqlparameter_Asp.net_Vb.net - Fatal编程技术网

Asp.net 本地化语言中的ado.net sqlparameter

Asp.net 本地化语言中的ado.net sqlparameter,asp.net,vb.net,Asp.net,Vb.net,我正在将波斯语文本作为sqlparameter的值传递给asp.net/vb.net中的参数化查询 但不返回任何行—与我在ssms中运行的查询相同—将给出结果行。不明白哪里出了错。 数据库已整理为“波斯100 ci_ai”。 Vb.net: Dim cmd As New SqlCommand Dim dt As New DataTable Dim dr As SqlDataReader dt.TableName = "temp" Try

我正在将波斯语文本作为sqlparameter的值传递给asp.net/vb.net中的参数化查询
但不返回任何行—与我在ssms中运行的查询相同—将给出结果行。不明白哪里出了错。 数据库已整理为“波斯100 ci_ai”。
Vb.net:

Dim cmd As New SqlCommand   
     Dim dt As New DataTable  
     Dim dr As SqlDataReader  
     dt.TableName = "temp"  
     Try  
         If Not conn.State = ConnectionState.Closed Then conn.Close()  
         If conn.State = ConnectionState.Closed Then conn.Open()  
         cmd.Connection = conn  
         Dim qry As String =  "Select * from users WHERE [Name]=@UserName AND [Pwd]=@Password"  
         cmd.commandtext = qry    
         cmd.Parameters.Add("@UserName", SqlDbType.NVarChar, 50).Value = "ادمین"    
         cmd.Parameters.Add("@Password", SqlDbType.NVarChar, 50).Value = "ادمین"  
         dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)    
            If dr.HasRows Then  
                dt.Load(dr)  
            End If  

            Return dt  
        Catch ex As Exception  
            Return Nothing  
        Finally  
            dt = Nothing  
            cmd.Connection = Nothing  
            cmd.Parameters.Clear()  
            cmd.Dispose()  
        End Try  
在ssms中:

declare @UserName nvarchar(50) = 'ادمين'
declare @Password nvarchar(50)= 'ادمين'
select * from Users where [name]=@UserName and [Pwd] = @Password 
有趣的一点是,在vb.net中,我创建了查询嵌入条件,但没有作为参数传递-它可以工作:

  Dim cmd As New SqlCommand
        Dim dt As New DataTable
        Dim dr As SqlDataReader
        Dim pLoginName As String = "ادمین"
        Dim pPassword As String = "ادمین"
        dt.TableName = "temp"
        Try
            If Not conn.State = ConnectionState.Closed Then conn.Close()
            If conn.State = ConnectionState.Closed Then conn.Open()
            cmd.Connection = conn
               Dim qry As String ="Select * from users WHERE [Name]='" & pLoginName & "' AND [Pwd]='" & pPassword & "'"
 cmd.CommandText = qry
           dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            If dr.HasRows Then
                dt.Load(dr)
            End If

            Return dt
        Catch ex As Exception
            Return Nothing
        Finally
            dt = Nothing
            cmd.Connection = Nothing
            cmd.Parameters.Clear()
            cmd.Dispose()
        End Try

这很奇怪。我从来没有遇到过这样的问题。让我看看。你能告诉我这些列的数据类型是什么吗?