2014-04-04 21 views
0

我已經在C#中開發了一個Windows商店應用程序,並且我有一個爲商店應用程序提供數據的MySQL數據庫(工作臺)。我沒有任何Web服務直接連接它們。但現在我想介紹一下他們之間的Web服務。我已經開發了使用Visual Studio 2012的商店應用程序。我不知道Web服務的外觀或寫入位置。我通過網絡瀏覽了很多東西。我只是一個模糊的想法,我必須編寫這個Web服務,並在我的商店應用程序中使用它。但是在哪裏寫以及如何撰寫還不清楚。如何編寫一個Web服務來連接MySQL到Windows應用商店?

我只有SQL服務器的樣本,這對我沒有幫助。 任何人都可以爲我提供正確的方向和步驟,以瞭解如何編寫此Web服務,在哪裏編寫它以及如何在Windows商店應用程序中訪問它?

這是我在service1.asmx.cs文件試用:

命名WebService1 {

/// <summary> 
/// Summary description for Service1 
/// </summary> 
[WebService(Namespace = "http://tempuri.org/")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService] 

public class Service1 : System.Web.Services.WebService 
{ 
    [WebMethod] 
    public DataSet GetStudents() 
{ 
    using (MySqlConnection connection = new MySqlConnection 
    (ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString)) 
    { 
     string Query = "SELECT * FROM [student]"; 
     MySqlCommand command = new MySqlCommand(Query, connection); 
     command.CommandType = CommandType.Text;   
     connection.Open(); 
     MySqlDataReader reader = command.ExecuteReader(); 

     DataTable StuTable = new DataTable("student"); 
     StuTable.Columns.Add("id", typeof(string)); 
     StuTable.Columns.Add("password", typeof(string)); 
     StuTable.Columns.Add("courseid", typeof(string));   

     while (reader.Read()) 
     { 
      StuTable.Rows.Add(new object[] 
      { 
        reader["id"].ToString(), reader["password"].ToString(), 
        reader["courseid"].ToString()}); 
      } 

      StuTable.AcceptChanges(); 
      DataSet ds = new DataSet(); 
      ds.Tables.Add(StuTable); 
      ds.AcceptChanges(); 
      return ds; 
     } 
} 


} 

}

但我不知道如何使用這個我存儲應用。

回答

1

Web服務只是一些動態生成的數據(在您的情況下是sql-query響應),可以通過獨立的Web請求從客戶端應用程序訪問或更改遠程服務器,並且在某些罕見情況下僅由用戶在瀏覽器窗口。它可以是非常嚴格和標準化的(比如SOAP),很少受到限制(比如REST),或者沒有任何限制(像大多數用戶製作的API)。

作爲第一步,您必須自己定義您的Web服務必須執行的操作類型 - 服務的方法以及必須返回的內容(如果需要)。

第二步,您需要在真正的Web服務器上使用任何一種編程語言來實現這個「方法」,在這種語言中,您向真實數據庫(select,更新,插入等等)發出請求。您沒有任何限制 - 您可以使用node.js或php,python或其他任何方式編寫web服務,服務可以放在服務器上,可以在Windows,Linux或「雲中」工作 - 完全沒問題。

在第三步中,您必須將需要與客戶端部分分離的方法替換爲將請求發送到放置在某個遠程Web服務器上的「Web服務」的存根。

基本上,這是關於這個可怕的「網絡服務」的事情的全部魔力。容易不是?這更像是一個「營銷詞」,而不是一些「新的令人驚歎的革命性的技術」:)

但是從頭開始編寫大型web服務可能很難而且很無聊,所以有很多公司編寫的代碼以及旨在抽象和簡化實現Web服務的過程的個人... .NET Framework中的名稱空間System.Web.Services - 是其中的一個部分,其中「web-service」只是一個基於System.Web的公共類.Services.WebService,其中可以使用[WebMethod]屬性放置公共方法。只需從Visual Studio「Web Service」模板製作並編寫新項目 - 它很有趣且簡單:)

+0

嘿非常感謝您的耐心和解釋!是!我按照你所說的做了同樣的事情,使用了System.Web.Services.WebService。我編輯了我的問題。請看一下。謝謝! –

相關問題