2017-09-27 8 views
0

私はパラメータに値を渡そうとしましたが、返すものは何もありません。パラメータなしで単純なsqlコマンドを使用すると、データベースからすべてのデータを取得できます。あなたは、文字列@criteriaを検索しているどのようにしてsqldataadapterにパラメータを渡すことができますか?

Public Shared Function RetrieveData() As DataTable 
 
    Connection.Open() 
 
    Try 
 
     sql = "SELECT DEP_ID AS CODE, DEP_NAME AS DEPARTMENT FROM DEPART_TBL WHERE " & FieldName & " LIKE N'%@criteria%'" 
 
     da = New SqlDataAdapter 
 
     da.SelectCommand = New SqlCommand(sql, Connection.SQLConnection) 
 
     da.SelectCommand.Parameters.Add("@criteria", SqlDbType.NChar) 
 
     da.SelectCommand.Parameters("@criteria").Value = "KCL" 
 
     'da.SelectCommand.Parameters.Add("@criteria", SqlDbType.NChar, 10, "DEP_ID") 
 
     'Message.ShowInfo(da.SelectCommand.CommandText.ToString) 
 
     'Exit Function 
 
     dt = New DataTable 
 
     da.Fill(dt) 
 
    Catch ex As Exception 
 
     Message.ShowError(ex.Message) 
 
    End Try 
 
    da.Dispose() 
 
    Connection.Close() 
 
    Return dt 
 
End Function

+0

qu estionですが、コマンドに変数を追加するのと同時に変数に値を代入することもできます。また、文字列パラメータを渡すときに長さを指定することもお勧めします。つまり、あなたのコードは、 'da.SelectCommand.Parameters.Add(" @ criteria "、SqlDbType.NChar、50).Value =" KCL "' – GarethD

答えて

1

は、このパラメータを使用するので、使用したい: はここに私のコードです

sql = "SELECT DEP_ID AS CODE, DEP_NAME AS DEPARTMENT FROM DEPART_TBL WHERE " & FieldName & " LIKE N'%' + @criteria + '%'" 

するか、あなたはそれを使用することができますパラメータ:

da.SelectCommand.Parameters("@criteria").Value = "%KCL%" 
+0

です。はい、ありがとうございます。それは動作しますが、空白のパラメータを受け入れていないようです。 –

関連する問題