怎樣將查詢到的數據顯示在DataGridView中


背景介紹:

數據庫中的T_Line_Info表中存放着學生上機的記錄,也就是我們須要查詢上機記錄的表。當中詳細內容為:




界面設計例如以下:


右擊DataGridView控件。選擇編輯列,設計它的列名。


代碼實現部分:

U層:

Public Class frmQueryOnRecord

    Private Sub btn_Query_Click(sender As Object, e As EventArgs) Handles btn_Query.Click
        Dim student As New Login.Model.LineInfo
        Dim BUser As New Login.BLL.LoginManager
        '將輸入的卡號傳給實體
        student.cardno = txtcardno.Text
        DataGridView1.Visible = True

        '在數據庫中查到該卡號的上機信息
        Dim uTable = BUser.QueryOnRecord(student)
        If uTable.Rows.Count > 0 Then
            '將數據顯示在DataGridView中

            DataGridView1.Item(1, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("studentname")
            DataGridView1.Item(2, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("ondate")
            DataGridView1.Item(3, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("ontime")
            DataGridView1.Item(4, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("offdate")
            DataGridView1.Item(5, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("ontime")
            DataGridView1.Item(6, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("moeny")
            DataGridView1.Item(7, DataGridView1.NewRowIndex).Value = uTable.Rows(0)("consumemoney")


        Else
            '沒有查到內容時
            DataGridView1.Rows.Clear()
            MsgBox("沒有找到記錄!

") End If End Sub End Class




B層:

   Public Function QueryOnRecord(student As Login.Model.LineInfo) As DataTable
        Dim f As New DFactory.DBFactory
        Dim istudent As Login.Interface.ILineInfo

        istudent = f.QueryOnlineInfo
        '接收DataTable
        Table = istudent.Query_OnRecord(student)
        '把Table返回到U層
        Return Table


    End Function

接口:

Public Interface ILineInfo
    '返回的類型是DataTable
    Function Query_OnRecord(student As Login.Model.LineInfo) As DataTable
End Interface

實體:

Public Class LineInfo
    '與上機記錄表中的字段一一相應
    Public cardno As String
    Public studentname As String
    Public ondate As String
    Public ontime As String
    Public offdate As String
    Public offtime As String
    Public money As String
    Public consumemoeny As String

End Class


sqlHelper中的GetDataTable方法

 Public Function GetDataTable(ByVal cmdTxt As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable
        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")
        '定義一個數據庫連接對象  
        Dim conn As SqlConnection = New SqlConnection(strConnStr)
        Dim cmd As New SqlCommand '定義一個命令對象  
        Dim adataset As DataSet
        Dim adaptor As SqlDataAdapter '定義一個適配器對象  
        cmd = New SqlCommand(cmdTxt, conn)
        adaptor = New SqlDataAdapter(cmd)
        adataset = New DataSet
        cmd.CommandType = cmdType
        cmd.Parameters.AddRange(paras)
        Try
            '打開數據庫連接  
            If conn.State = ConnectionState.Closed Then
                conn.Open()

            End If
            '填充數據集  
            adaptor.Fill(adataset)
            Return adataset.Tables(0)
        Catch ex As Exception
            MsgBox(ex.Message, , "數據庫操作")
        Finally
            '關閉數據庫連接  
            If conn.State = ConnectionState.Open Then
                conn.Close()

            End If
        End Try


    End Function


D層:

Public Function QueryOnRecord(student As Login.Model.LineInfo) As DataTable Implements ILineInfo.Query_OnRecord
        '按卡號在上機記錄表中查找
        Dim sql As String = "select * from T_Line_Info where cardno=" & student.cardno
        Dim cmd As SqlCommand = New SqlCommand(sql, conn)
        Dim helper As New Login.DAL.sqlHelper
        '設置參數
        Dim paras As SqlParameter() = {New SqlParameter("@cardno", student.cardno)}
        Try
            conn.Open()
            '調用sqlhelper中的GetDataTable方法
            Return helper.GetDataTable(sql, CommandType.Text, paras)
       
        Catch ex As Exception
            MsgBox(ex.Message, "")

        End Try
    End Function

執行結果:




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM