using BusinessObjectAndData; using System; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Web; using System.Web.Services; using System.Xml; public class WebDataService : System.Web.Services.WebService { public WebDataService() { InitializeComponent(); } #region Component Designer generated code [WebMethod] public DataSet ExecuteQuery( string commandXml, string resultName) { SqlCommand cmd = this.GetCommandFromXml(commandXml); IDataService oService = DataServiceFactory.GetDataService(); return oService.ExecuteQuery(cmd,resultName); } [WebMethod] public void ExecuteNonQuery(string commandXml) { SqlCommand cmd = this.GetCommandFromXml(commandXml); IDataService oService = DataServiceFactory.GetDataService(); oService.ExecuteNonQuery(cmd); } [WebMethod] public object ExecuteScalar(string commandXml) { SqlCommand cmd = this.GetCommandFromXml(commandXml); IDataService oService = DataServiceFactory.GetDataService(); return oService.ExecuteScalar(cmd); } [WebMethod] public bool IsValid() { IDataService oService = DataServiceFactory.GetDataService(); return oService.IsValid(); } private SqlCommand GetCommandFromXml(string commandXml) { SqlCommand cmd = new SqlCommand(); XmlDocument xml = new XmlDocument(); xml.LoadXml(commandXml); XmlNode nodeText = xml.SelectSingleNode("command/text"); cmd.CommandText = nodeText.InnerText; XmlNode nodeType = xml.SelectSingleNode("command/type"); if (nodeType.InnerText == "StoredProcedure") { cmd.CommandType = CommandType.StoredProcedure; } XmlNodeList parameters = xml.SelectNodes("command/parameters/parameter"); foreach(XmlNode nodePara in parameters) { XmlNode nodeName = nodePara.SelectSingleNode("@name"); cmd.Parameters.Add(nodeName.InnerText, nodePara.InnerText); } return cmd; } }