私は神がどれくらいの期間知っているかについて、以下のコードを見てきましたが、問題が何であるかを見つけることができないようです. 記載されたエラーに関して私が見たほとんどの議論は、ソースがパラメーターのタイプミスによるものであることを示しています。しかし、なぜ嘘をつくのか、タイプミスは見られません。誰かがどこが間違っているのか教えてもらえますか?
Dim dt As System.Data.DataTable = New System.Data.DataTable
dim sqlText as string
sqlText = "SELECT id AS privilegeID, " & _
"user_id AS userID, " & _
"module_id AS moduleID, " & _
"can_read AS canRead, " & _
"can_create AS canCreate, " & _
"can_update AS canUpdate, " & _
"can_delete AS canDelete, " & _
"is_deleted AS isDeleted, " & _
"is_active AS isActive " & _
"FROM base_user_privilege " & _
"WHERE " & _
"user_id=@userID AND " & _
"is_deleted=@isDeleted AND " & _
"is_active=@isActive"
SetDBCommand(sqlText)
DBCommand.Parameters.AddWithValue("@userID", userID)
DBCommand.Parameters.AddWithValue("@isDeleted", IsDeleted)
DBCommand.Parameters.AddWithValue("@isActive", IsActive)
dt = DBAction(sqlText, DBActionType.DataTable)
setdbcommand (sqltext)は接続を確立するためのものであり、機能するため、他の選択および挿入ステートメントで機能しているため、エラーはないと思います。
手伝ってください。
ありがとう。
編集
setdb コマンドは次のとおりです。
Public Sub SetDBCommand(ByVal sqlString As String)
If DBConnection.State = ConnectionState.Closed Then
DBConnection.Open()
End If
DBCommand = New SQLiteCommand(sqlString, DBConnection)
End Sub
Reader では機能しますが、データ テーブルでは機能しません
私の dataconnection 関数では、上記のパラメーターはDataReaderを介して渡されると機能しますが、 DataTableを介して渡されると機能しません。パラメータは DataTable で機能しますか?
Public Function DBAction(ByVal sqlText As String, ByVal ActionType As DBActionType) As Object
DBAction = Nothing
Select Case ActionType
Case DBActionType.DataReader
Return DBCommand.ExecuteReader
Case DBActionType.Dataset
Dim MyAdpater As New SQLiteDataAdapter(sqlText, DBConnection)
Dim myDataSet As New System.Data.DataSet
MyAdpater.Fill(myDataSet)
Return myDataSet
Case DBActionType.DataTable
Dim MyAdpater As New SQLiteDataAdapter(sqlText, DBConnection)
Dim MyDataTable As New System.Data.DataTable
MyAdpater.Fill(MyDataTable)
Return MyDataTable
Case DBActionType.executeNonQuery
DBCommand.ExecuteNonQuery()
Case DBActionType.ExecuteScalar
Dim ScalarItem As Object = DBCommand.ExecuteScalar
Return ScalarItem
Case Else
Throw New Exception("Error in DBACTION")
End Select
End Function