在實(shí)際的應(yīng)用項目中,可以通過使用.NET的DataGrid控件把數(shù)據(jù)庫中的信息顯示在界面上,供用戶瀏覽或修改。
下面介紹使用DataGrid控件進(jìn)行數(shù)據(jù)綁定的方法
DataGrid控件進(jìn)行數(shù)據(jù)綁定后,可以實(shí)現(xiàn)DataGrid控件上顯示的數(shù)據(jù)同后臺數(shù)據(jù)庫的數(shù)據(jù)綁定在一起,同步地一起變化。另外,DataGrid控件以表格的形式顯示了查詢到的數(shù)據(jù)結(jié)果集,默認(rèn)的訪問方式是只讀而不能修改,通過設(shè)置,可以實(shí)現(xiàn)記錄的修改和刪除功能。
通過以下的步驟,能將數(shù)據(jù)庫里的數(shù)據(jù)動態(tài)綁定到DataGrid對象里并顯示。
(1)在D盤下建立一個Access類型的數(shù)據(jù)庫,命名為Student.mdb。在其中新建一張StudentInfo的表,其中的字段如表1所示。
表1 StudentInfo表字段說明
| 字段名稱 | 字段描述 | 數(shù)據(jù)類型 | 備注說明 |
| SID | 學(xué)號 | 文本 | 主鍵 |
| SName | 姓名 | 文本 | — |
| SSex | 性別 | 文本 | — |
注意:表中“—”表示無須設(shè)置相關(guān)信息。
完成后往其中插入一些記錄,如(001, Tom, 男)。
(2)打開Visual Studio 2005集成開發(fā)環(huán)境后,選擇“文件”|“新建”|“新建網(wǎng)站”ming令,在彈出的“新建網(wǎng)站”對話框中選擇“ASP.NET項目”,輸入網(wǎng)站名 testDataGrid和路徑C:/root/DataGrid,登錄模塊所有代碼和配置文件均放在此項目下。
(3)在集成開發(fā)環(huán)境中的“解決方案資源管理器”里,選中項目,右擊,在彈出的快捷菜單中選擇“添加新項”ming令,新建一個Web配置文件,命名為Web.config。該配置文件主要用來管理登錄模塊的一些全局性數(shù)據(jù)。
其中,在配置文件里設(shè)置數(shù)據(jù)庫的連接屬性,使用OleDB的Data Provider,連接到Access數(shù)據(jù)源上,代碼如下:
<configuration>
<appSettings>
<add key="connStr" value=" Porvider = Microsoft.Jet.OleDB.4.0;Data Source= D:/Student.mdb"> </add>
</appSettings>
<connectionStrings/>
(4)在集成開發(fā)環(huán)境中的“解決方案資源管理器”里,選中項目,右擊,在彈出的快捷菜單中選擇“添加新項”ming令,新建一個Web窗體,命名為showDataGrid.aspx。
(5) 打開“工具箱”的“Web窗體”,從中拖曳一個DataGrid控件到頁面上,從DataGrid的屬性欄中,可以看到該DataGrid對象叫DataGrid1。選中DataGridView控件,右擊,在彈出的快捷菜單中選擇“屬性”ming令,在屬性欄的Columns中單擊“…”按鈕,在彈出的“編輯列”對話框中,通過“添加”ming令,依次向DataGridView控件里添加“學(xué)號”、“姓名”和“性別”3列,并把每列的DataPropertyName設(shè)置成該列對應(yīng)的數(shù)據(jù)庫字段,用于數(shù)據(jù)綁定。具體設(shè)置如表2所示。
表2 DataGridView的Columns屬性數(shù)據(jù)列信息
| 數(shù) 據(jù) 列 名 | DataPropertyName |
| 學(xué)號 | SID |
| 姓名 | SName |
| 性別 | SSex |
(6)雙擊窗體的空白處,進(jìn)入相應(yīng)的邏輯代碼文件showDataGrid.aspx.cs。在該文件的頂端,添加數(shù)據(jù)庫訪問引用的命名空間語句:
using System.Data.SqlClient;
表2 DataGridView的Columns屬性數(shù)據(jù)列信息并在class的開頭添加連接數(shù)據(jù)庫的字符串定義:
private static string strConnect = System.Configuration.ConfigurationManager.AppSettings["connStr"];
然后在該頁面的Page_Load方法里添加以下代碼:
// 數(shù)據(jù)庫連接
OleDbConnection objConnection = new OleDbConnection(strConnect);
// 數(shù)據(jù)庫ming令
OleDbCommand objCommand = new OleDbCommand("", objConnection);
try
{
// 設(shè)置Sql語句
objCommand.CommandText = "SELECT SID,SName,Sex FROM StudentInfo ORDER BY SID";
// 打開數(shù)據(jù)庫連接
if (objConnection.State == ConnectionState.Closed)
{
objConnection.Open();
}
// 創(chuàng)建DataSet對象
DataSet objDataset = new DataSet();
// 使用DataAdapter對象填充DataSet
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand);
objAdapter.Fill(objDataset, "objDataset");
DataGrid1.DataSource = objDataset.Tables["objDataset"];
//數(shù)據(jù)綁定
DataGrid1.DataBind();
}
catch (SqlException exp)
{
MessageBox.Show(exp.Message, "錯誤", MessageBoxButtons.OK);
}
finally
{
// 關(guān)閉數(shù)據(jù)庫連接
if (objConnection.State == ConnectionState.Open)
{
objConnection.Close();
}
}
由于使用的是Data Provider,所以ADO.NET組件的對象都以O(shè)leDb開頭。
上述代碼的主要業(yè)務(wù)邏輯是:
1) 根據(jù)連接字符串,創(chuàng)建數(shù)據(jù)庫連接對象,并根據(jù)連接對象創(chuàng)建 OLeDbCommand對象。
2) 根據(jù)SQL語句,查詢所有學(xué)生的信息,以SID的順序排列。
3) 使用OleDbDataApapter對象,將查詢結(jié)果填充到DataSet中的objDataset數(shù)據(jù)表里。
4) 將DataGrid的數(shù)據(jù)源設(shè)置成objDataset數(shù)據(jù)表,實(shí)現(xiàn)數(shù)據(jù)綁定。
這樣,當(dāng)打開此頁面時,DataGrid就能與Access數(shù)據(jù)庫綁定,顯示數(shù)據(jù)庫里的學(xué)生信息。
新聞熱點(diǎn)
疑難解答
圖片精選