1. 程式人生 > >DataGridView顯示資料的兩種方法

DataGridView顯示資料的兩種方法

1.簡單介紹

  DataGridView空間是我們常用的顯示資料的控制元件,它有極高的可配置性和可擴充套件性。

2.顯示資料

  DataGridView顯示資料一般我們常用的有兩種方法,一種是直接設定DataSoure屬性就可以繫結資料。此方法不需要寫任何程式碼操作比較簡單,但是它顯示出來的是整張表的資料。如果整一表資料比較多,而且我們並不需要所有的資料的情況下,我們就應該考慮第二種方法了。通過寫程式碼連線資料庫並從資料庫中讀取資料,最後將返回的資料傳給DataGridView。這種方法貌似比較複雜,但是它只顯示我們需要的資料,相比成千上萬的資料,效率法爾明顯提高了。

  下面就簡單介紹一下這兩種方法:

  第一種通過屬性設定

  首先在屬性視窗找到DataSource屬性,點選下拉框。第一次用,以前每新增過的話,點選新增資料來源

                                   

  選擇資料型別,下一步,選擇資料集,下一步

           

  選擇資料連線,點新建連線

  

  在新增連結對話方塊中更改資料來源(我用的SQL Server資料庫),點選下拉框選擇伺服器名稱(點號預設為自己的伺服器)。然後在下面連線到資料處選擇資料庫,測試連結通過的話,點確定。這時又回到資料配置嚮導,點下一步就可以在資料庫中選擇你要顯示的表了。

     

    新增完成後,執行窗體資料就顯示出來了

  

  第二種方法就是通過寫程式碼載入資料

<span style="font-family:KaiTi_GB2312;font-size:18px;">    '定義一個函式查詢規定日期內的收取金額
    Public Function check_money(ByVal tstRecharge As Model.RechargeModel) As DataTable
        Dim strSQL As String = "select * from Recharge_info where rechargeDateTime between @startdatetime and @enddatetime"
        Dim params As SqlParameter() = {New SqlParameter("@startdatetime", tstRecharge.start_datetime), New SqlParameter("@enddatetime", tstRecharge.end_datetime)}
        Dim helper As New SqlHelper
        Dim dat = helper.GetDataTable(strSQL, CommandType.Text, params) '呼叫sqlhelper
        Return dat '返回查到的資料表
    End Function</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"> Dim db As New DAL.CkeckMoneyDAL '定義一個D層物件,用來呼叫D層函式

    '定義一個函式,用來檢查D層查詢金額返回的資料
    Public Function check_return(model As Model.RechargeModel) As DataTable
        Dim dat = db.check_money(model)
        If dat.Rows.Count = 0 Then '檢查D層返回的資料表中是否有資料
            Return Nothing
        Else
            Return dat
        End If
    End Function</span>
<span style="font-family:KaiTi_GB2312;font-size:18px;"> Dim thisRecharge As New Model.RechargeModel '定義一個實體層物件,用來接收起止時間
        thisRecharge.start_datetime = DateTimePicker1.Text
        thisRecharge.end_datetime = DateTimePicker2.Text
        Dim ub As New BLL.CheckMoneyBLL '定義一個B層物件,用來呼叫B層函式
        If ub.check_return(thisRecharge) Is Nothing Then
            MsgBox("該時間段內沒有記錄,請重新設定時間段!", MsgBoxStyle.Exclamation, vbOKOnly)
        Else
            dvwTitles.DataSource = ub.check_return(thisRecharge) '把查到的資料傳給datagridview
        End If</span>
  顯示結果:

  

  兩種方法各有優缺點,我們需要根據自己的實際情況選擇使用。當我們只需要顯示整張表的資料或者表中資料不多的情況下,第一種方法最簡單不過來,不需要寫任何程式碼。如果我們希望資料有選擇性的顯示,比如上圖中就只顯示6月18日到6月20日期間的資料,通過寫程式碼雖然貌似繁瑣,但是顯示結果一目瞭然,避免了我們從大量資料中尋找我們需要的資料,大大提高了效率。

  學習的道路上沒有捷徑,但是總有那麼一條會更適合你……