在IE瀏覽器中使用Windows窗體控件(二)
發(fā)表時間:2023-07-29 來源:明輝站整理相關軟件相關文章人氣:
[摘要]在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é)中我們看看對進