1.簡介
DataGridView空間是我們經常使用的顯示數據的控件,它有極高的可配置性和可擴展性。
2.顯示數據
DataGridView顯示數據一般我們經常使用的有兩種方法,一種是直接設置DataSoure屬性就能夠綁定數據。此方法不須要寫不論什么代碼操作比較簡單,可是它顯示出來的是整張表的數據。假設整一表數據比較多,並且我們並不須要全部的數據的情況下,我們就應該考慮另外一種方法了。通過寫代碼連接數據庫並從數據庫中讀取數據,最后將返回的數據傳給DataGridView。這樣的方法貌似比較復雜,可是它僅僅顯示我們須要的數據,相比成千上萬的數據,效率法爾明顯提高了。
以下就簡介一下這兩種方法:
第一種通過屬性設置
首先在屬性窗體找到DataSource屬性,點擊下拉框。第一次用,曾經每加入過的話,點擊加入數據源
選擇數據類型,下一步,選擇數據集,下一步
選擇數據連接,點新建連接
在加入鏈接對話框中更改數據源(我用的SQL Server數據庫),點擊下拉框選擇server名稱(點號默覺得自己的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日期間的數據,通過寫代碼盡管貌似繁瑣,可是顯示結果一目了然,避免了我們從大量數據中尋找我們須要的數據,大大提高了效率。
學習的道路上沒有捷徑,可是總有那么一條會更適合你……