Abrufen von Daten aus access-Datenbank, um Daten in der grid-Ansicht vb.net
Ich versuche zu Lesen, Daten aus access-Datenbank mit bestimmten Datum an die datagrid-Ansicht VB.NET. Ich verwenden Sie eine datetime-picker für, die. Folgenden code habe ich verwendet zum abrufen der Daten. Aber ich drücken Sie die Schaltfläche "finden". nichts Anzeige im datagrid anzeigen. dies ist der code
Private Sub BTNFIND_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTNFIND.Click
ATCEDITGRID.Rows.Clear()
getConnect()
'Dim editdate As String
DTPEDITAT.Value = Format(DTPEDITAT.Value, "dd/MM/yyyy")
'MessageBox.Show(DTPEDITAT.Value)
'editdate = DTPEDITAT.Value
Try
Conn.Open()
Dim strSQL As String = "SELECT EMP_ID,EMP_NAME,AT_STATUS,AT_REMARK FROM ATTENDANCE WHERE AT_DATE = " & DTPEDITAT.Value & " ORDER BY EMP_NAME ASC"
Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter(strSQL, Conn)
Dim ds As DataSet = New DataSet
da.Fill(ds, "ATTENDANCE")
Dim dt As DataTable = ds.Tables("ATTENDANCE")
Dim row As DataRow
Dim atstat As String
For Each row In dt.Rows
If row("AT_STATUS") = 1 Then
atstat = "Present"
ElseIf row("AT_STATUS") = 0 Then
atstat = "Absent"
ElseIf row("AT_STATUS") = 0.5 Then
atstat = "Halfday"
Else
atstat = "Error"
End If
'MessageBox.Show(row("EMP_ID"))
'MessageBox.Show(row("EMP_NAME"))
'MessageBox.Show(atstat)
'MessageBox.Show(row("AT_REMARK"))
Me.ATCEDITGRID.Rows.Add(row("EMP_ID"))
Me.ATCEDITGRID.Rows.Add(row("EMP_NAME"))
Me.ATCEDITGRID.Rows.Add(atstat)
Me.ATCEDITGRID.Rows.Add(row("AT_REMARK"))
Next row
ATCEDITGRID.TopLeftHeaderCell.Value = "Sr.No."
Me.ATCEDITGRID.RowHeadersDefaultCellStyle.Padding = New Padding(3)
ATCEDITGRID.AllowUserToAddRows = False
AddRowHeadersEdit()
Conn.Close()
Catch ex As OleDb.OleDbException
MsgBox(ex.Message, MsgBoxStyle.Critical, "DB Error")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
End Try
End Sub
bitte überprüfen Sie den code. und geben Sie mir die Lösung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim erstellen eines sql-Befehls verketten von Zeichenfolgen setzen Sie Ihren code, um zwei große Probleme.
insbesondere Datenbank
böswillige Benutzer (gut, hier sollte nicht von Bedeutung sein, aber....)
Statt erstellen einer parametrisierten Abfrage und lassen Sie die framework-code interagieren mit der Datenbank-engine in eine korrekte und sichere Weise
So sollten Sie schreiben:
Nun suchen Sie in Ihren code, den Sie haben könnte eine weitere potenzielle Fehler in der Art und Weise behandeln Sie den Wert des Feldes AT_STATUS. Aus deinem code scheint es, dass das Feld vom Datentyp decimal oder double. Wenn Sie Ihren code kompilieren, dann haben Sie wahrscheinlich die OPTION STRICT auf OFF. Es ist ratsam, diese option AUF, und konvertieren Sie entsprechend den Datentypen