在實際的應用項目中通常需要把用ADONET組件獲得的數據信息顯示在界面上供用戶浏覽或修改可以通過使用NET的DataGrid控件實現這種功能
DataGrid控件與數據綁定
DataGrid控件的主要目的是實現數據綁定(Data Binding)即把DataGrid控件上顯示的數據同後台數據庫的數據綁定在一起同步地一起變化
另外DataGrid控件以表格的形式顯示了查詢到的數據結果集默認的訪問方式是只讀而不能修改通過設置可以實現記錄的修改和刪除功能
DataGrid代碼示例
通過以下的步驟能將數據庫裡的數據動態綁定到DataGrid對象裡並顯示
() 在D盤下建立一個Access類型的數據庫命名為Studentmdb在其中新建一張StudentInfo的表其中的字段如表所示
字 段
中 文 描 述
數 據 類 型
備 注
SID
學號
文本
主鍵
SName
姓名
文本
—
Sex
性別
文本
—
表 StudentInfo表字段說明
注意本書表中—表示無須設置相關信息
完成後往其中插入一些記錄如( Tom Male)
() 打開Visual Studio 環境後選擇文件|新建|新建網站命令在彈出的新建網站對話框中選擇ASPNET項目輸入網站名 testDataGrid和路徑C:\root\DataGrid登錄模塊所有代碼和配置文件均放在此項目下
() 在集成開發環境中的解決方案資源管理器裡選中項目右擊在彈出的快捷菜單中選擇添加新項命令新建一個Web配置文件命名為nfig該配置文件主要用來管理登錄模塊的一些全局性數據
其中在配置文件裡設置數據庫的連接屬性使用OleDB的Data Provider連接到Access數據源上代碼如下
<configuration>
<appSettings>
<add key=connStr value= Porvider = MicrosoftJetOleDB;Data Source= D:\loginmdb > </add>
</appSettings>
<connectionStrings/>
() 在集成開發環境中的解決方案資源管理器裡選中項目右擊在彈出的快捷菜單中選擇添加新項命令新建一個Web窗體命名為showDataGridaspx
() 打開工具箱的Web窗體從中拖曳一個DataGrid控件到頁面上從DataGrid的屬性欄中可以看到該DataGrid對象叫DataGrid選中DataGridView控件右擊在彈出的快捷菜單中選擇屬性命令在屬性欄的Columns中單擊…按鈕在彈出的編輯列對話框中通過添加命令依次向DataGridView控件裡添加學號姓名和性別列並把每列的DataPropertyName設置成該列對應的數據庫字段用於數據綁定具體設置如表所示
數 據 列 名
DataPropertyName
學號
SID
姓名
SName
性別
Sex
表 DataGridView的Columns屬性數據列信息
() 雙擊窗體的空白處進入相應的邏輯代碼文件showDataGridaspxcs在該文件的頂端添加數據庫訪問引用的命名空間語句
using SystemDataSqlClient;
表 DataGridView的Columns屬性數據列信息並在class的開頭添加連接數據庫的字符串定義
private static string strConnect = SystemConfigurationConfigurationManagerAppSettings[connStr];
然後在該頁面的Page_Load方法裡添加以下代碼
// 數據庫連接
OleDbConnection objConnection = new OleDbConnection(strConnect);
// 數據庫命令
OleDbCommand objCommand = new OleDbCommand( objConnection);
try
{
// 設置Sql語句
objCommandCommandText = SELECT SIDSNameSex FROM StudentInfo ORDER BY SID;
// 打開數據庫連接
if (objConnectionState == ConnectionStateClosed)
{
objConnectionOpen();
}
// 創建DataSet對象
DataSet objDataset = new DataSet();
// 使用DataAdapter對象填充DataSet
OleDbDataAdapter objAdapter = new OleDbDataAdapter(objCommand);
objAdapterFill(objDataset objDataset);
DataGridDataSource = objDatasetTables[objDataset];
//數據綁定
DataGridDataBind();
}
catch (SqlException exp)
{
MessageBoxShow(expMessage 錯誤 MessageBoxButtonsOK);
}
finally
{
// 關閉數據庫連接
if (objConnectionState == ConnectionStateOpen)
{
objConnectionClose();
}
}
由於使用的是Data Provider所以ADONET組件的對象都以OleDb開頭
上述代碼的主要業務邏輯是
() 根據連接字符串創建數據庫連接對象並根據連接對象創建 OLeDbCommand對象
() 根據SQL語句查詢所有學生的信息以SID的順序排列
() 使用OleDbDataApapter對象將查詢結果填充到DataSet中的objDataset數據表裡
() 將DataGrid的數據源設置成objDataset數據表實現數據綁定
這樣當打開此頁面時DataGrid就能與Access數據庫綁定顯示數據庫裡的學生信息
From:http://tw.wingwit.com/Article/program/net/201311/12782.html