用WebService實現跨平臺的可互操作性

WebService完全基於XML(可擴展標記語言)、XSD(XMLSchema)等獨立於平臺、獨立於軟件供應商的標準,是創建可互操作的、分佈式應用程序的新平臺。

它有三種特性,足以說明 WebService帶來的好處.

1>,跨防火牆的通信.2>應用程序集成.3>B2B的集成.呵....,好處自不用說,先來點實際的.

(1)新建一Web站點,添加一個WebService,命名爲DataBaseWebService,會同時產生兩個文件DataBaseWebService.asmx和DataBaseWebService.cs

我們在DataBaseWebService.cs裏寫入一些提供的服務.在DataBaseWebService.cs裏已經自動添加一個WebService方法HelloWorld().我們要添加的是返回一個數據集和錯誤處理的方法,代碼如下:

 

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;


/// <summary>
/// Summary description for DataBaseWebService
/// </summary>

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
public class DataBaseWebService : System.Web.Services.WebService {

    
public DataBaseWebService () {

        
//Uncomment the following line if using designed components 
        
//InitializeComponent(); 
    }


    [WebMethod]
    
public string HelloWorld() {
        
return "Hello World";
    }


    [WebMethod]
    
public DataSet SqlQuery(string Sql)
    
{
        
try
        
{
            SqlConnection sqlconn 
= new SqlConnection("Server=192.168.254.19;DataBase=Test;Uid=sa;Pwd=;");
            SqlDataAdapter Adpt 
= new SqlDataAdapter(Sql, sqlconn);
            DataSet ds 
= new DataSet();
            Adpt.Fill(ds);
            
return ds;
        }

        
catch (Exception ex)
        
{

            
return DataError(ex);

        }

    }



    
public DataSet DataError(Exception ex)
    
{
        DataSet ErrDs 
= new DataSet("Errors");
        DataTable ErrTable 
= ErrDs.Tables.Add("Error");
        ErrTable.Columns.Add(
"Message");
        ErrTable.Rows.Add(
new Object[] { ex.Message });
        
return ErrDs;
    }


    
}


(2)編譯通過,在IE地址欄裏可以得到我們剛纔寫的服務的地址:http://localhost:2508/WebServ/DataBaseWebService.asmx,寫Copy一下,一會用得着.

(3),新一Winfrm工程WebServicesClient,右鍵工程>Add Web References,在彈出窗體裏的URL地址欄輸入剛纔我們發佈的服務的地址http://localhost:2508/WebServ/DataBaseWebService.asmx,點擊 Add  References按鈕.一個WebServices就添加進來了.

(4)在from1上拖放一個DataGridView控件和一個menuStrip1控件.轉到Code頁面.代碼如下:

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WebServicesClient
{
    
public partial class Form1 : Form
    
{

        DataBaseWebService.DataBaseWebService mQuery 
= new WebServicesClient.DataBaseWebService.DataBaseWebService();

        
public Form1()
        
{
            InitializeComponent();
        }


        
private void DeptToolStripMenuItem1_Click(object sender, EventArgs e)
        
{
            
            DataSet mDs 
= mQuery.SqlQuery("select * from dbo.BSC_DEPT");
            
this.dataGridView1.DataSource = mDs.Tables[0];
            
        }


        
private void EmployeeToolStripMenuItem_Click(object sender, EventArgs e)
        
{
            DataSet Ds 
= mQuery.SqlQuery("select * from dbo.BSC_Employee");
            
this.dataGridView1.DataSource = Ds.Tables[0];
        }

    }

}

(5)編譯通過,單擊菜單項一,顯示BSC_DEPT中的內容,單擊菜單二,顯示BSC_Employee表的內容.

以上爲web服務winfrm引用,當然也可以web服務web引用.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章