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