Récupérer des données à partir de la base de données access de données de l'affichage de la grille dans vb.net
J'essaie de lire des données à partir de la base de données access avec date spécifique à afficher dans le contrôle datagrid VB.NET. J'utilise un datetime picker pour que. Ci-dessous le code que j'ai utilisé pour récupérer des données. Mais j'appuie sur le bouton rechercher. rien d'affichage dans la grille de données de la vue. c'est le 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
veuillez vérifier le code. et me donner la solution
Vous devez vous connecter pour publier un commentaire.
Lorsque vous créez une commande sql de la concaténation de chaînes que vous exposez votre code à deux grands problèmes.
base de données particulière
utilisateur malveillant (eh bien, ici, ne doit pas être un sujet de préoccupation, mais....)
Au lieu de construire une requête paramétrée et laissez-le code de la structure d'interagir avec le moteur de base de données dans un endroit sûr et de façon correcte
De sorte que vous devriez écrire:
Maintenant à la recherche à votre code, vous pourriez avoir un autre risque d'erreur dans la manière de traiter la valeur du champ AT_STATUS. À partir de votre code, il semble que le champ est de type décimal ou double. Si votre code à la compilation, alors vous avez probablement OPTION STRICT à OFF. Il est préférable de garder cette option SUR et convertir correctement les types de données