#副標=Ajax網頁開發(6) #大標=Atlas網頁與XMLWeb Services服務(上) #作者=文/王寧疆 ==程式1 =========== ================ ==程式2 =========== ================ ==程式3 =========== ================ ==程式4 =========== WebService.GetOrderID("ALFKI", OnComplete, OnTimeout); // 傳遞內容為ALFKI 的字串參數給XML Web Services 的做法 ================ ==程式5 =========== public class Product { public int ProductID; public string ProductName; } ================ ==程式6 =========== [WebService()] public class WebService : System.Web.Services. WebService { [WebMethod] public void GetProducts(Product p) // 呼叫給網頁呼叫的GetProducts 功能需要傳入 //Product 類別型態的參數 { .... } } ================ ==程式7 =========== var object = new Product(); // 建立Product 類別的物件 object.ProductID = 1; // 將Product 類別的物件的ProductID 的內容值設定為1object.ProductName = "Seafood"; // 將Product 類別的物件的ProductName 的內容值 // 設定為SeafoodWebService.GetProducts(object, OnComplete, OnTimeout); // 將Product 類別的物件傳遞給XML Web Services // 的GetProducts 方法當做參數 ================ ==程式8 =========== ================ ==程式9 =========== WebService.ExceptionTest( 參數,// 傳給XML WebServices 的參數 OnComplete, // 指定負責處理XML Web Services 呼叫結果的函數 OnTimeout, // 指定負責處理XML Web Services 呼叫逾時的函數 OnError // 指定負責處理XML Web Services 呼叫錯誤的函數 ); ================ ==程式10 =========== function OnError(result) // 負責處理XML Web Services 呼叫錯誤的函數 { alert(result.get_message()); // 顯示呼叫XML Web Services 的錯誤訊息 alert(result.get_stackTrace()); // 顯示呼叫XML Web Services 發生錯誤時 // 的堆疊資訊 } ================ ==程式11 =========== ================ ==程式13 =========== ================ ==程式14 =========== ================ ==程式15 =========== [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class WebService : System.Web.Services.WebService { [WebMethod] public string[] GetCustomerID() { string strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\SQL Server 2000 Sample Databases\NORTHWND.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True"; // 連線資料庫的資訊 string strSQL = "Select CustomerID from Customers"; // 查詢Customers 資料表 // 的CustomerID 欄位 SqlConnection conn = new SqlConnection(strConn); // 建立SqlConnection 類別的物件 SqlCommand cmd = new SqlCommand(strSQL, conn); // 建立SqlCommand 類別的物件 cmd.CommandType = CommandType.Text; // 設定SqlCommand 類別的物件的 //CommandType 屬性 conn.Open(); // 開啟資料庫連線 SqlDataReader dr=cmd.ExecuteReader(); // 執行查詢,.. 取回查詢的結果 List l=new List(); // 建立List 集合的物件 while (dr.Read()) // 使用迴圈取回查詢到的所有記錄 { l.Add(dr["CustomerID"].ToString()); // 將讀到的記錄的CustomerID 欄位 // 的內容值放入List 集合 } dr.Close(); // 關閉SqlDataReader 類別的物件 cmd.Dispose(); // 丟棄SqlCommand 類別的物件 conn.Close(); // 關閉資料庫連線 conn.Dispose(); // 丟棄SqlConnection 類別的物件 return l.ToArray(); // 傳回存放查詢結果的List 集合 } [WebMethod] public string[] GetOrderID(string CustomerID) { string strConn = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\SQL Server 2000 Sample Databases\NORTHWND.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True"; // 連線資料庫的資訊 string strSQL = "Select OrderID from Orders where CustomerID='" + CustomerID + "'"; // 查詢Orders 資料表的OrderID 欄位 SqlConnection conn = new SqlConnection(strConn); // 建立SqlConnection 類別的物件 SqlCommand cmd = new SqlCommand(strSQL, conn); // 建立SqlCommand 類別的物件 cmd.CommandType = CommandType.Text; // 設定SqlCommand 類別的物件的CommandType 屬性 conn.Open(); // 開啟資料庫連線 SqlDataReader dr=cmd.ExecuteReader(); // 執行查詢,.. 取回查詢的結果 List l=new List(); //建立List集合的物件 while (dr.Read()) //使用迴圈取回查詢到的所有記錄 { l.Add(dr["OrderID"].ToString()); //將讀到的記錄的OrderID欄位 //的內容值放入List集合 } dr.Close(); //關閉SqlDataReader類別的物件 cmd.Dispose(); //丟棄SqlCommand類別的物件 conn.Close(); //關閉資料庫連線 conn.Dispose(); //丟棄SqlConnection類別的物件 return l.ToArray(); //傳回存放查詢結果的List集合 } ================