WCF Web Services + 連接 Database 使用方法 (SOAP Server Side / SOAP Client Side – Return List<Object>)

 
WCF Web Services + 連接 Database 使用方法 (SOAP Server Side / SOAP Client Side – Return List<Object>)
 
(SOAP Server Side)

   IService1.cs
 
   using System;
   using System.Collections.Generic;
   using System.Runtime.Serialization;
   using System.ServiceModel;
 
   namespace WcfService1
   {
      // 注意: 您可以使用 [重構] 功能表上的 [重新命名] 命令同時變更程式碼和組態檔中的介面名稱 "IService1"。
      [ServiceContract]
      public interface IService1
      {
         [OperationContract]
         List<Player> SendItem();
 
         // TODO: 在此新增您的服務作業
      }
 
      // 使用下列範例中所示的資料合約,新增複合型別至服務作業。
      [DataContract]
      public class Player
      {
         [DataMember]
         public int Player_ID;
 
         [DataMember]
         public string Player_Name;
 
         [DataMember]
         public int Team_ID;
      }
   }
 

 

   Service1.svc.cs
 
   using System;
   using System.Collections.Generic;
   using System.Text;
   using System.Data.SqlClient;
 
   namespace WcfService1
   {
      // 注意: 您可以使用 [重構] 功能表上的 [重新命名] 命令同時變更程式碼、svc 和組態檔中的類別名稱 "Service1"。
      public class Service1 : IService1
      {
         public List<Player> SendItem()
         {
            List<Player> PlayerList = new List<Player>();
 
            String connectionString1 = "Data Source=.\\SqlExpress; Initial Catalog=Soccer; Integrated Security=SSPI";
            SqlConnection con1 = new SqlConnection(connectionString1);
            con1.Open();
 
            StringBuilder sb = new StringBuilder();
            sb.Append("SELECT * FROM dbo.Player;");
 
            SqlCommand cmd1 = new SqlCommand(sb.ToString(), con1);
            SqlDataReader dr = cmd1.ExecuteReader();
 
            if(dr.HasRows){
               while(dr.Read()){
                  PlayerList.Add(new Player
                  {
                     Player_ID = (int)(dr["Player_ID"]),
                     Player_Name = dr["Player_Name"].ToString().Trim(),
                     Team_ID = (int)(dr["Team_ID"])
                  });
               }
            }
 
            cmd1.Dispose();
            con1.Dispose();
 
            return PlayerList;
         }
      }
   }
 

 
(SOAP Client Side – 需自行增加 Service References)

   Default.aspx
 
   using System;
   using System.Collections.Generic;
   using System.Linq;
   using System.Web;
   using System.Web.UI;
   using System.Web.UI.WebControls;
   using WebApplication9.ServiceReference1;
 
   namespace WebApplication9
   {
      public partial class _Default : System.Web.UI.Page
      {
         protected void Page_Load(object sender, EventArgs e)
         {
            Service1Client WCFObj = new Service1Client();
            GridView1.DataSource = WCFObj.SendItem();
            GridView1.DataBind();
            WCFObj.Close();
         }
      }
   }