明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

在IE瀏覽器中使用Windows窗體控件(二)

[摘要]在IE瀏覽器中使用Windows窗體控件(二)作者::Thiru Thangarathinam翻譯:秋楓 通過windows窗體控件訪問Web Service窗體控件一個重要優(yōu)...
在IE瀏覽器中使用Windows窗體控件(二)

作者::Thiru Thangarathinam

翻譯:秋楓


通過windows窗體控件訪問Web Service


窗體控件一個重要優(yōu)點就是你可以通過它在客戶端實現(xiàn)豐富的用戶信息。比如說,你可以通過窗體控件對Web服務的訪問從而在IE中顯示而不需要重新刷新該頁面。為了演示這點,我們先來創(chuàng)建一個Web服務,接著再來演示怎樣通過窗體控件調(diào)用Web服務。

創(chuàng)建Web service

我們創(chuàng)建一個 Visual C# Asp.net 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;

}

上面方法的代碼比較簡單,我們把數(shù)據(jù)庫連接字符串儲存到了Web.config文件的appSettings節(jié)點上,如下:

<appSettings>

<add key="connectionString" value="server=localhost;uid=sa;pwd=thiru;database=Pubs"></add>

</appSettings>



上面代碼中,
我們創(chuàng)建了一個SqlConnnection實例,同時把上面的連接字符串作為參數(shù)傳入。接著創(chuàng)建一個SqlDataAdapter對象,傳入兩個參數(shù)――查詢字符串和SqlConnnection實例。調(diào)用SqlDataAdapter實例的Fill方法來執(zhí)行數(shù)據(jù)庫查詢并把結(jié)果填充到DataSet,F(xiàn)在我們完成了Web服務的創(chuàng)建,接下去來建立一個他的一個客戶端調(diào)用。

創(chuàng)建windows窗體控件作為Web服務客戶端

在這里,我們是想用一個窗體控件來調(diào)用Web Service,因此新建一個Visual C#窗體控件項目取名AuthorsWebServiceClientControl:。

完成后,修改默認用戶控件名稱為AuthorsControl.。我們在上面添加了一個DataGrid控件取名GridAuthors 同時添加一個按鈕取名BtnClick。注冊按鈕的點擊事件,在事件處理函數(shù)中,將會調(diào)用WebService。在這之前我們需要添加項目的Web引用,輸入剛才創(chuàng)建的Web服務地址。編輯器會生成該服務的代理,添加Web服務引用如下:






服務代理創(chuàng)建以后,我們在按鈕事件中添加代碼:

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;

}
在上面代碼中,我們創(chuàng)建了web服務代理的一個實例,并調(diào)用GetAuthors方法把返回的數(shù)據(jù)集賦值給GridAuthors的DataSource屬性。接著編譯這個窗體控件,然后配置虛擬目錄。

創(chuàng)建Html頁面和建立虛擬路徑

在這一步中,我們通過創(chuàng)建一個Html頁面來使用上面創(chuàng)建的那個AuthorsWebServiceClientControl。下面是他的代碼:

<html>
<body>
<p>Authors Display Control<br><br>
<object id="AuthorsControl1"
classid="http:AuthorsWebServiceClientControl.dll#AuthorsWebServiceClientControl.AuthorsControl"
height="500" width="500" VIEWASTEXT>
</object>
<br><br>
</body>
</html>

現(xiàn)在我們需要創(chuàng)建一個虛擬目錄使該控件能正常工作,并把AuthorsDisplay.htm和AuthorsWebServiceClientControl.dll放在一起。打開該瀏覽器輸入地址,你就會看到一個按鈕和一個空的DataGrid,如果你點擊該命令按鈕,控件就會調(diào)用Web服務同時把結(jié)果寫到了DataGrid中。頁面結(jié)果如下所示。


在下一節(jié)中我們看看對進