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(); } } } |