通過windows窗體控件訪問Web Service 窗體控件一個重要優點就是你可以通過它在客戶端實現豐富的用戶信息
比如說
你可以通過窗體控件對Web服務的訪問從而在IE中顯示而不需要重新刷新該頁面
為了演示這點
我們先來創建一個Web服務
接著再來演示怎樣通過窗體控件調用Web服務
創建Web service 我們創建一個 Visual C# web service 新項目
名字取為AuthorsWebService
建立以後
我們修改服務類名稱為AuthorsService
同時在類裡面增加一個GetAuthors方法到裡面
該方法的代碼如下
[WebMethod]
public DataSet GetAuthors()
{
string connString = System
Configuration
ConfigurationSettings
AppSettings[
connectionString
];
SqlConnection sqlConn = new SqlConnection(connString);
DataSet dstAuthors = new DataSet(
Authors
);
SqlDataAdapter adapter = new SqlDataAdapter(
Select * from Authors
sqlConn);
adapter
Fill(dstAuthors
Author
);
sqlConn
Close();
sqlConn
Dispose();
return dstAuthors;
}
上面方法的代碼比較簡單
我們把數據庫連接字符串儲存到了nfig文件的appSettings節點上
如下
上面代碼中
我們創建了一個SqlConnnection實例
同時把上面的連接字符串作為參數傳入
接著創建一個SqlDataAdapter對象
傳入兩個參數――查詢字符串和SqlConnnection實例
調用SqlDataAdapter實例的Fill方法來執行數據庫查詢並把結果填充到DataSet
現在我們完成了Web服務的創建
接下去來建立一個他的一個客戶端調用
創建windows窗體控件作為Web服務客戶端
在這裡
我們是想用一個窗體控件來調用Web Service
因此新建一個Visual C#窗體控件項目取名AuthorsWebServiceClientControl:
完成後
修改默認用戶控件名稱為AuthorsControl
我們在上面添加了一個DataGrid控件取名GridAuthors 同時添加一個按鈕取名BtnClick
注冊按鈕的點擊事件
在事件處理函數中
將會調用WebService
在這之前我們需要添加項目的Web引用
輸入剛才創建的Web服務地址
編輯器會生成該服務的代理
添加Web服務引用如下圖
服務代理創建以後
我們在按鈕事件中添加代碼
private void BtnClick_Click(object sender
System
EventArgs e)
{
this
Cursor = Cursors
WaitCursor;
AuthorsWebServiceProxy
AuthorsService authorsSvc = new
AuthorsWebServiceProxy
AuthorsService();
this
GridAuthors
DataSource = authorsSvc
GetAuthors();
this
Cursor = Cursors
Default;
}
在上面代碼中
我們創建了web服務代理的一個實例
並調用GetAuthors方法把返回的數據集賦值給GridAuthors的DataSource屬性
接著編譯這個窗體控件
然後配置虛擬目錄
創建Html頁面和建立虛擬路徑
在這一步中
我們通過創建一個Html頁面來使用上面創建的那個AuthorsWebServiceClientControl
下面是他的代碼
Authors Display Control
現在我們需要創建一個虛擬目錄使該控件能正常工作
並把和AuthorsWebServiceClientControl
dll放在一起
打開該浏覽器輸入地址
你就會看到一個按鈕和一個空的DataGrid
如果你點擊該命令按鈕
控件就會調用Web服務同時把結果寫到了DataGrid中
頁面結果如下所示
From:http://tw.wingwit.com/Article/os/xtgl/201311/9584.html