これはこれまでのコードです... 私は2つのDateTimePickersを持っており、ユーザーはその週の最初の曜日と最後の曜日を選択します。一度これらの2つを選択すると、毎日働いている時間を計算して追加して、選択した日数の時間を表示できます。私のVBプログラムへのアクセスDBクエリからデータを取得できません
My Workテーブルには、idEmployee、Date、ArrivalTime、DepartureTime、およびその日に作業した時間を表示する計算列(Hrs_worked)が含まれています。
プログラムを実行すると、「DBNull型から '文字列型が無効です」または「条件式のデータが一致しません」というメッセージが表示されます。 値は文字列値にdatetimepickers? Accessデータベース
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim provider As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
Dim dataFile As String = "E:\SIDB.accdb"
Dim connString As String = provider & dataFile
Dim myConnection As OleDbConnection
Dim cmd As OleDbCommand
Dim qHrsWorked As String = "SELECT SUM(Hrs_worked) FROM Work WHERE IdEmployee = " & idEmptxt.Text & " AND Date >= " & firstDayDTP.Value & " AND Date <= " & lastDayDTP.Value & ""
myConnection = New OleDbConnection(connString)
Try
myConnection.Open()
cmd = New OleDbCommand(qHrsWorked, myConnection)
Dim reader As OleDbDataReader = cmd.ExecuteReader()
While reader.Read
hrsWorkedtxt.Text = reader.Item(0)
End While
reader.Close()
cmd.Dispose()
myConnection.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
がどの行であなたが例外を得るのですか? – Steve
データの不一致は、SQLパラメータを使用していないためです。期間。クエリが渡されたレコードがない場合、DbNull変換エラーが発生する可能性があります。これは、SQLパラメータを使用しないために不正な形式になる可能性があります。また、あなたのアプリがリソースを漏らしています。 SQLパラメータを使用します。 – Plutonix