淺析C# DataGrid控件
在實(shí)際的應(yīng)用項(xiàng)目中,通常需要把用ADO.NET組件獲得的數(shù)據(jù)信息顯示在界面上,供用戶(hù)瀏覽或修改??梢酝ㄟ^(guò)使用.NET的DataGrid控件實(shí)現(xiàn)這種功能。
C# DataGrid控件與數(shù)據(jù)綁定
C# DataGrid控件的主要目的是實(shí)現(xiàn)“數(shù)據(jù)綁定”(Data Binding),即把DataGrid控件上顯示的數(shù)據(jù)同后臺(tái)數(shù)據(jù)庫(kù)的數(shù)據(jù)綁定在一起,同步地一起變化。
另外,DataGrid控件以表格的形式顯示了查詢(xún)到的數(shù)據(jù)結(jié)果集,默認(rèn)的訪問(wèn)方式是只讀而不能修改,通過(guò)設(shè)置,可以實(shí)現(xiàn)記錄的修改和刪除功能。
DataGrid代碼示例
通過(guò)以下的步驟,能將數(shù)據(jù)庫(kù)里的數(shù)據(jù)動(dòng)態(tài)綁定到DataGrid對(duì)象里并顯示。
(1) 在D盤(pán)下建立一個(gè)Access類(lèi)型的數(shù)據(jù)庫(kù),命名為Student.mdb。
(2) 打開(kāi)Visual Studio 2005環(huán)境后,選擇“文件”|“新建”|“新建網(wǎng)站”命令,在彈出的“新建網(wǎng)站”對(duì)話框中選擇“ASP.NET項(xiàng)目”,輸入網(wǎng)站名 testDataGrid和路徑C:\root\DataGrid,登錄模塊所有代碼和配置文件均放在此項(xiàng)目下。
(3) 在集成開(kāi)發(fā)環(huán)境中的“解決方案資源管理器”里,選中項(xiàng)目,右擊,在彈出的快捷菜單中選擇“添加新項(xiàng)”命令,新建一個(gè)Web配置文件,命名為Web.config。該配置文件主要用來(lái)管理登錄模塊的一些全局性數(shù)據(jù)。
其中,在配置文件里設(shè)置數(shù)據(jù)庫(kù)的連接屬性,使用OleDB的Data Provider,連接到Access數(shù)據(jù)源上,代碼如下:
- <configuration>
- <appSettings>
- <addkeyaddkey="connStr"value="Porvider=Microsoft.Jet.OleDB.4.0;
- DDataSource=D:\login.mdb"></add>
- </appSettings>
- <connectionStrings/>
(4) 在集成開(kāi)發(fā)環(huán)境中的“解決方案資源管理器”里,選中項(xiàng)目,右擊,在彈出的快捷菜單中選擇“添加新項(xiàng)”命令,新建一個(gè)Web窗體,命名為showDataGrid.aspx。
(5) 打開(kāi)“工具箱”的“Web窗體”,從中拖曳一個(gè)C# DataGrid控件到頁(yè)面上,從DataGrid的屬性欄中,可以看到該DataGrid對(duì)象叫 DataGrid1。選中DataGridView控件,右擊,在彈出的快捷菜單中選擇“屬性”命令,在屬性欄的Columns中單擊“…”按鈕,在彈出的“編輯列”對(duì)話框中,通過(guò)“添加”命令,依次向DataGridView控件里添加“學(xué)號(hào)”、“姓名”和“性別”3列,并把每列的 DataPropertyName設(shè)置成該列對(duì)應(yīng)的數(shù)據(jù)庫(kù)字段,用于數(shù)據(jù)綁定。
(6) 雙擊窗體的空白處,進(jìn)入相應(yīng)的邏輯代碼文件showDataGrid.aspx.cs。在該文件的頂端,添加數(shù)據(jù)庫(kù)訪問(wèn)引用的命名空間語(yǔ)句:
- privatestaticstringstrConnect=System.Configuration.ConfigurationManager.AppSettings["connStr"];
- 然后在該頁(yè)面的Page_Load方法里添加以下代碼:
- //數(shù)據(jù)庫(kù)連接
- OleDbConnectionobjConnection=newOleDbConnection(strConnect);
- //數(shù)據(jù)庫(kù)命令
- OleDbCommandobjCommand=newOleDbCommand("",objConnection);
- try
- {
- //設(shè)置Sql語(yǔ)句
- objCommand.CommandText="SELECTSID,SName,SexFROMStudentInfoORDERBYSID";
- //打開(kāi)數(shù)據(jù)庫(kù)連接
- if(objConnection.State==ConnectionState.Closed)
- {
- objConnection.Open();
- }
- //創(chuàng)建DataSet對(duì)象
- DataSetobjDataset=newDataSet();
- //使用DataAdapter對(duì)象填充DataSet
- OleDbDataAdapterobjAdapter=newOleDbDataAdapter(objCommand);
- objAdapter.Fill(objDataset,"objDataset");
- DataGrid1.DataSource=objDataset.Tables["objDataset"];
- //數(shù)據(jù)綁定
- DataGrid1.DataBind();
- }
- catch(SqlExceptionexp)
- {
- MessageBox.Show(exp.Message,"錯(cuò)誤",MessageBoxButtons.OK);
- }
- finally
- {
- //關(guān)閉數(shù)據(jù)庫(kù)連接
- if(objConnection.State==ConnectionState.Open)
- {
- objConnection.Close();
- }
- }
【編輯推薦】