配置數據集
在 Form
上
右鍵單擊 SqlDataAdapter
圖標
然後單擊 Generate Dataset(生成數據集)
圖
為 SqlDataAdapter 生成數據集
在 Generate Dataset(生成數據集)對話框中
選擇 New(新建)
然後輸入名稱 BrowseInvoiceTotalsDS
在頁面下部的窗口中
BrowseInvoiceTotals(SqlDataAdapter
) 應該被選中
單擊 OK(確定)
圖
生成數據集屬性表
下一步
我們將為 Form
創建窗體元素
創建窗體元素
向 Form
添加一個 DataGrid 控件
打開工具箱
然後單擊 Windows Forms(Windows 窗體)
將一個 DataGrid 控件拖放到 Form
上
右鍵單擊 DataGrid 控件
單擊 Properties(屬性)
將 DataGrid 控件的 CaptionText 屬性更改為 Invoice Report
配置 DataGrid 控件的屬性以將其綁定到數據
在 Properties(屬性)的 Data(數據)部分中
將 DataSource 屬性設置為 BrowseInvoiceTotalsDS
BrowseInvoiceTotals
圖
DataGrid 屬性頁(單擊圖片以查看大圖像)
重新設置 DataGrid 控件的大小
使所有的列都可見
要填充數據集
向 Form
中添加一個按鈕
然後將其 Text 和 Name 屬性更改為 RunReport
雙擊按鈕以打開代碼窗口
將以下代碼行添加到 RunReport_Click 子例程中並保存該應用程序
BrowseInvoiceTotalsDS
Clear
使用 SqlDataAdapter 填充 DS
SqlDataAdapter
Fill(BrowseInvoiceTotalsDS
)
現在
可以測試我們的應用程序了
運行該應用程序
然後單擊 RunReport 按鈕
SqlDataAdapter 將連接到數據庫
運行我們的存儲過程和函數
加載數據集並將數據傳遞到數據網格中
輸出結果應類似於圖
所示的結果
圖
示例應用程序輸出結果(單擊圖片以查看大圖像)
下一步
我們將創建一個數據維護窗體
創建數據維護窗體
向 ServiceCall 項目中添加一個新窗體 (Form
)
在解決方案資源管理器中
右鍵單擊項目名稱
單擊 Add(添加)
然後單擊 Add Windows Form(添加 Windows 窗體)
在 Templates(模板)下
單擊 Windows Form(Windows 窗體)模板
然後單擊 Open(打開)
向窗體中添加一個 SqlDataAdapter 控件
將啟動數據適配器配置向導
為 SqlDataAdapter 選擇現有 ServiceCall 連接
對於此 SqlDataAdapter 控件
我們將讓 Visual Studio
NET 為我們創建所需的存儲過程
單擊 Create new stored procedures(創建新存儲過程)
然後單擊 Next(下一步)
將打開 Generate the stored procedures(生成存儲過程)頁面
單擊查詢生成器
將 Customers 表添加到查詢
然後關閉 Add Table(添加表)對話框
在關系圖窗格中
選擇所有的列
單擊 OK(確定)
然後單擊 Next(下一步)
在 Create the Stored Procedures(創建存儲過程)屬性頁中
分別為四個新存儲過程提供一個名稱(此示例中使用了 CustomersSelect
CustomersDelete
CustomersInsert 和 CustomersUpdate)
然後單擊 Next(下一步)
當向導的最後一頁顯示成功生成所有存儲過程的消息時
單擊 Finish(完成)
打開 SqlDataAdapter 控件的屬性頁
查看以下屬性
這些屬性被設置為我們所提供的存儲過程名稱值
SelectCommand
CommandText 的值為 CustomersSelect
DeleteCommand
CommandText 的值為 CustomersDelete
InsertCommand
CommandText 的值為 CustomersInsert
UpdateCommand
CommandText 的值為 CustomersUpdate
Visual Studio
NET 基於我們提供的 Select 語句創建了四個存儲過程
將其編譯到數據庫
並配置了 SqlDataAdapter 控件以使用這些存儲過程
下一步要生成我們為 Form
創建的 SqlDataAdapter 的數據集
生成數據集
右鍵單擊 SqlDataAdapter
然後單擊 Generate DataSet(生成數據集)
將數據集命名為 CustomersDS
向窗體中添加一個 DataGrid 控件
將 DataSource 屬性設置為 CustomersDS
Customers
將 CaptionText 屬性設置為 Maintain Customers
重新設置 DataGrid 控件的大小
使所有的列都可見
在數據網格下添加一個按鈕
將其 Text 屬性和 Name 屬性更改為 Load
在第一個按鈕的旁邊添加另一個按鈕
將其 Text 屬性和 Name 屬性更改為 Update
雙擊 Load 按鈕以打開代碼窗口
然後向 Load 按鈕的單擊事件中添加以下代碼
CustomersDS
Clear()
SqlDataAdapter
Fill(CustomersDS
)
在 Update 按鈕的單擊事件中
添加以下代碼
SqlDataAdapter
Update(CustomersDS
)
在運行應用程序之前
必須將項目的 Startup 對象更改為 Form
更改 Startup 對象
在解決方案資源管理器中
右鍵單擊 ServiceCall 項目
然後單擊 Properties(屬性)
在 Startup object(Startup 對象)下
將 Startup 對象更改為 Form
然後單擊 OK(確定)
運行應用程序以打開維護窗體 (Form
)
單擊 Load 按鈕以加載數據網格
其中帶有表中的現有數據
屏幕應類似於圖
所示
圖
示例應用程序輸出結果(單擊圖片以查看大圖像)
更新 ServiceCall 數據庫
要刪除行
請單擊該行
然後按 Delete 鍵
要添加新行
請在網格末尾單擊空行中的任何一個單元格
然後提供相應的值
完成更改後
單擊 Update(更新)
系統檢查網格中每一行的 RowStatus
調用相應的存儲過程
並傳入正確的參數以處理請求的操作
此示例展示了 Visual Studio
NET IDE 和框架的強大功能
我們僅使用了幾行代碼
就創建了功能完備的表維護應用程序
使用 ADO
NET 訪問 SQL Server
Microsoft
NET 框架提供了新版本的 ADO
稱為 ADO
NET
ADO
NET 的功能得到了加強
能夠更好地支持分布式應用程序的開發
並主要依賴 XML 作為其內部數據結構
在以前版本的 ADO 中
Recordset 對象是開發人員用於處理來自數據存儲的數據的主要對象
在 ADO
NET 中
DataSet 對象取代了 Recordset 對象
一個 DataSet 就是用戶使用的數據在內存中的副本
一個 DataSet 可以包含一個或多個 DataTable
您可以將 DataSet 視為一個虛擬關系數據庫
DataSet 與原始數據源完全無關
而且並非設計為與數據源直接通信
ADO
NET 是使用托管提供程序與數據源進行通信的
ADO
NET 提供兩種托管提供程序
一種用於 SQL Server 數據庫
另一種用於任何 OLE DB 兼容數據庫
到目前為止
我們創建的所有示例都使用了 SQL Server 托管提供程序
如果查看工具箱中 Data(數據)下的選項
會注意到三對名稱相同而前綴不同的控件
下表列出了這三對控件
前綴為 OLEDB 的控件表示 OLE DB 托管提供程序
可用於訪問任何與 OLE DB 兼容的數據庫
這些控件與當前的 ADO 對象類似
但已被改寫為托管代碼以便在
NET 框架中使用
前綴為 SQL 的控件表示 SQL Server 托管提供程序
只能用於 SQL Server
與其 OLE DB 的對應控件相比
這些控件具有一些優點
首先
這些對象使用本地表格數據流 (TDS) 接口以獲得最佳性能
OLE DB 對象所需的其他接口層已被刪除
這使得數據庫的訪問速度更快
其次
從這些控件中創建的 SQL 對象具有其他一些方法
這些方法利用了專用於 SQL Server 的功能
這為使用 SQL Server 進行設計和編程提供了更大的靈活性
我們在前面創建的示例應用程序中使用了 ADO
NET
而 Visual Studio
NET 為我們處理了大多數編碼工作
我們所要做的就是通過 IDE 的用戶界面配置數據集和數據適配器
現在
讓我們看看使用 ADO
NET 從表中選擇
插入
更新和刪除數據時所需要的 Microsoft Visual Basic®
NET 編碼
首先看一下 Select 語句的代碼
Dim strCmdText As String
Dim rowsProcessed As Integer
Dim CustomerDS As New DataSet()
strCmdText =
Select * from Customers
Dim SqlDataAdapter
As New SqlDataAdapter(strCmdText
_
Data Source=localhost;Initial Catalog=ServiceCall;User
ID=sa;passsword=yourpassword
)
SqlDataAdapter
Fill(CustomerDS
Customers
)
在此代碼示例中
我們首先定義了要使用的變量和對象
包括 CustomersDS
它是一個 ADO
NET DataSet 對象
然後我們定義了查詢
該查詢將填充變量 strCmdText 中的數據集
下一步
我們定義一個 ADO
NET SqlDataAdapter 對象 (SqlDataAdapter
)
將查詢和數據庫連接字符串作為參數提供
請注意我們使用的是 SQL Server ADO
NET 托管提供程序
最後
我們通過調用 SqlDataAdapter 對象的 Fill 方法
填充 CustomerDS 並在名為 Customers 的 DataSet 中創建一個表
因為 SqlDataAdapter
使用查詢和連接串字符串進行了定義
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22200.html