C#WinForm利用Web Service API查詢資料庫並顯示到用戶端

來源:互聯網
上載者:User

 我們知道C#的Web Service API的傳回值可以是DataSet類型,這就使得我們可以通過Web Service API來查詢資料庫,這個功能將成為我們許多應用的基礎。下面我們用一個簡單的Winform調用的例子來說明這個問題。

首先我們有一個SQL Server2000資料庫book在伺服器webserviceserver上,book庫中有張表bookinfo,包含書名、作者、價格等欄位,資料庫使用者sa,密碼123456。我們利用VS2005建立一個Web Service項目並發布出去,這裡不再詳述如何建立和發布,如有不清楚的地方請參閱相關資料。也可以參考我的另兩篇文章:

http://blog.csdn.net/cattiger75/archive/2007/10/17/1828896.aspx(如何建立和發布WEB SERVICE)

http://blog.csdn.net/cattiger75/archive/2007/10/19/1832803.aspx(C#WINFORM裡如何調用WEB Service API)

我們在項目的Service.cs裡編寫一個查詢資料庫的API,為了簡化問題,我們編寫的這個API只接受一個字串參數,用來在書名欄位做前方匹配的查詢,返回一個DataSet,這個DataSet中包含一個名為bookinfo的DataTable,bookinfo中含有書名、作者和價格欄位,代碼如下: using  System;
using  System.Web;
using  System.Web.Services;
using  System.Web.Services.Protocols;
using  System.Data;
using  System.Data .SqlClient;


[WebService(Namespace  =   http://www.mywebservice.com/ )]
[WebServiceBinding(ConformsTo  =  WsiProfiles.BasicProfile1_1)]
public   class  Service : System.Web.Services.WebService
{
     // 定義一個sqlconnection串連成員
    SqlConnection sqlconn  =   new  SqlConnection( " Server=webserviceserver;Initial Catalog=book;uid=sa;pwd=123456 " );

     public  Service () {

         // 如果使用設計的組件,請取消注釋以下行 
         // InitializeComponent(); 
    }

    [WebMethod]
     public   string  HelloWorld() {
         return   " 歡迎使用我的WEB服務。 " ;
    }

    [WebMethod]
     public  DataSet searchBook( string  bookname)
    {
        sqlconn.Open();
         string  sql  =   " select top 50 書名,作者,價格 from bookinfo where 書名 like ' "   +  bookname  +   " %' order by id desc " ;

        SqlDataAdapter da  =   new  SqlDataAdapter(sql, sqlconn);
        DataSet ds  =   new  DataSet();
        da.Fill(ds, " bookinfo " );
         return  ds;
    }
}

編寫好後將Web Service發布出去。

現在我們來建立一個winform的Windows應用程式項目,並在項目中將我們剛剛發布的WEB Service做為一個WEB引用添加進來。

在項目表單中建立一個textbox控制項用來輸入查詢內容,一個名為btnBookSearch的查詢button,一個DataGridView控制項用來綁定獲得的dataset。雙擊查詢button編寫如下事件處理函數。          private   void  btnBookSearch_Click( object  sender, EventArgs e)
        {
             // 定義一個Web Service對象,WebReference是我們添加WEB引用時取的名稱
            WebReference.Service ws  =   new  cqust.libmanage.WebReference.Service();

             this .dataGridViewBookInfo.AutoGenerateColumns  =   true ;

             // 將返回的dataset綁定到datagridview上
             this .dataGridViewBookInfo .DataSource   =  ws.searchBook( this .textBoxSearchString.Text);

             // 指定顯示的datatable
             this .dataGridViewBookInfo.DataMember  =   " bookinfo " ;
        }

編譯項目並行,你將會在datagridview中看到查詢的結果。

我們的例子非常簡單,沒有考慮諸如異常捕獲、非同步呼叫、安全性等問題,但是它說明了利用Web Service API查詢資料庫是非常簡單的,通過對這個簡單API的擴充,你可以實現非常複雜的資料庫查詢。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.