朱瑞芳
摘要:該文主要介紹了一種數(shù)據(jù)控件DataGridView,它是ADO.NET3.5中新增加的一種網(wǎng)格控件,能以表格的形式顯示數(shù)據(jù),在數(shù)據(jù)庫的操作中會(huì)經(jīng)常用到。該文闡述如何運(yùn)用VB.net通過 DataGridView控件操縱SQL Server數(shù)據(jù)庫,從而為數(shù)據(jù)庫管理系統(tǒng)的開發(fā)與應(yīng)用提供方便。
關(guān)鍵詞:DataGridView;添加;更改;刪除
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)28-6607-04
隨著計(jì)算機(jī)應(yīng)用技術(shù)的迅猛發(fā)展和網(wǎng)絡(luò)技術(shù)的日益成熟并實(shí)用化,計(jì)算機(jī)進(jìn)入各個(gè)領(lǐng)域,大量大規(guī)模的信息系統(tǒng)的建立,要求計(jì)算機(jī)應(yīng)用領(lǐng)域由集中到分布,由單機(jī)到網(wǎng)絡(luò)。因此,幾乎所有主流的數(shù)據(jù)庫管理系統(tǒng)產(chǎn)品都包含了分布式數(shù)據(jù)庫管理系統(tǒng)的功能。只要輕點(diǎn)鼠標(biāo)按鈕就能完成查詢、添加、修改、刪除等數(shù)據(jù)維護(hù)操作。友好的界面設(shè)計(jì),使非計(jì)算機(jī)專業(yè)的人員也能適應(yīng)各種工作崗位。因此熟練掌握數(shù)據(jù)庫開發(fā)技術(shù)尤為重要。
1 運(yùn)行環(huán)境
本文通過Visual Studio 2010 的VB.NET訪問數(shù)據(jù)庫Sql Server 2008為例,重點(diǎn)說明DataGridView控件的使用方法。因此,首先要在Windows系統(tǒng)上正確安裝好Visual Studio 2010和Sql Server。
1.1 數(shù)據(jù)準(zhǔn)備
打開SQL Server,服務(wù)器類型為數(shù)據(jù)庫引擎,服務(wù)器名稱為本地計(jì)算機(jī)名稱,身份驗(yàn)證為Sql server身份驗(yàn)證,用戶名和密碼分別為sa和sa123。為了便于理解,現(xiàn)假設(shè)數(shù)據(jù)庫文件名稱和位置為 : c:\StudentInf.mdf
該數(shù)據(jù)庫中有一個(gè)名稱為 Grade的數(shù)據(jù)庫表。表的內(nèi)容如圖1所示。
1.2 運(yùn)行Visual Studio 2010
打開Visual Studio 2010,新建項(xiàng)目,名稱設(shè)為“StudentInfo”(如果有公用模塊,將該項(xiàng)目名稱用作空間名稱)。
1.3 界面設(shè)計(jì)
如圖2所示,界面上有添加、修改、刪除三個(gè)命令按鈕,另包括5個(gè)文本框,一個(gè)顯示表格的DataGridView控件。
1.4 Class Form1代碼
該工程只有一個(gè)窗體代碼:
Imports System.Data.SqlClient
Public Class Form1
Dim Conn AsSqlConnection
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim dt As DataTable
……
End Class
其中“……”(省略號(hào))部分是添加、刪除、更新等命令按鈕的Click事件代碼。下面分別說明如何用DataGridView控件實(shí)現(xiàn)相應(yīng)的命令操作。
2 關(guān)鍵代碼
通過修改dataGridView1中的數(shù)據(jù)來更新數(shù)據(jù)庫中的內(nèi)容,原理是通過studentInfDataSet將dataGridView1綁定到Grade1表,studentInfDataSet處于中間位置,所以在dataGridView1中修改的數(shù)據(jù)必須要傳遞到studentInfDataSet后才能改變數(shù)據(jù)庫中的內(nèi)容。
2.1“添加”按鈕的click事件代碼
連接本地SQL Server數(shù)據(jù)庫有二種方式:一種是點(diǎn)擊dataGridView1控件右上角的小三角形,創(chuàng)建對(duì)象連接,綁定'數(shù)據(jù)源,如圖3所示。
另一種方法用連接字符串
2.2 “更新”按鈕的click事件代碼
更新數(shù)據(jù)的功能,由選中行事件與單擊“更新”按鈕二個(gè)事件共同完成,代碼如下:
2.2.1 DataGridView1_CellClick事件過程代碼
If e.RowIndex < DataGridView1.Rows.Count - 1 Then
TextBox1.Text = DataGridView1. _
Rows(e.RowIndex). Cells(0).Value. ToString()
TextBox2.Text = DataGridView1._
Rows(e.RowIndex). Cells(1).Value.ToString()
TextBox3.Text = DataGridView1._
Rows(e.RowIndex). Cells(2).Value.ToString()
TextBox4.Text = DataGridView1. Rows(e.RowIndex). Cells(3).Value.ToString()
TextBox5.Text = DataGridView1. Rows(e.RowIndex). Cells(4).Value.ToString()
End If
2.2.2 “更新”按鈕的click事件代碼
“公用代碼”
ds.Tables("mytb1").PrimaryKey = New DataColumn() {ds.Tables("mytb1"). _
Columns("學(xué)號(hào)")}
dr = ds.Tables("mytb1"). _
Rows.Find(TextBox1.Text)
'找到當(dāng)前的記錄,并修改
dr("學(xué)號(hào)") = TextBox1.Text
dr("姓名") = TextBox2.Text
dr("語文") = TextBox3.Text
dr("數(shù)學(xué)") = TextBox4.Text
dr("英語") = TextBox5.Text
'更新到數(shù)據(jù)庫里
Dim scb As New SqlCommandBuilder(da)
da.Update(ds, "mytb1")
DataGridView1.DataSource = _
ds.Tables("mytb1")
Conn.Close()
先選中任一行,使行內(nèi)數(shù)據(jù)復(fù)制到對(duì)應(yīng)的文本框,再在文本框內(nèi)修改,最后點(diǎn)更新。
2.3 “刪除”按鈕的click事件代碼
DataGridView1.Rows.RemoveAt _
(DataGridView1.CurrentRow.Index)
再更新到數(shù)據(jù)庫,否則只刪除DataSet里的數(shù)據(jù),而并沒有真正刪除。但限于篇幅,重新綁定數(shù)據(jù)庫的代碼省略。
DataGridView控件還有很多相關(guān)屬性設(shè)置:如選中整行;選擇隱藏所選中的列或列頭;禁止列高、行寬改變;或設(shè)列寬和行高的最小值;使用 ReadOnly 屬性,設(shè)定單元格是否只讀;是否顯示最下面的新行;設(shè)定單元格的指定背景顏色等。
3 結(jié)束語
熟練掌握VB.NET技術(shù),靈活運(yùn)用DataGridView控件,能輕松設(shè)計(jì)高效、穩(wěn)定的數(shù)據(jù)庫管理系統(tǒng),并且利用資源共享和模塊通用性的特點(diǎn),使得數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用日益廣泛,與日新月異的計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展相適應(yīng)。
參考文獻(xiàn):
[1] 青島東合信息技術(shù)有限公司,青島海爾軟件有限公司.VB.NET程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2011.
[2] 石志國(guó),劉冀偉,張維存.VB.NET數(shù)據(jù)庫編程[M].北京:清華大學(xué)出版社,2009.
[3] 童愛紅,劉凱.VB.NET應(yīng)用教程[M].北京:北京交通大學(xué)出版社,2005.
[4] 藏洪廣.Visual Basic 2005+SQL Server2005數(shù)據(jù)庫開發(fā)與實(shí)例[M].北京:清華大學(xué)出版社,2008.