Order Importer - Retrive Orders Page |
<%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %>
<script runat="server">
protected void Page_Load(object sender, System.EventArgs e) { OleDbDataAdapter Da;
//create dataset and set its namespace DataSet DsOrders = new DataSet("DsOrders"); DsOrders.Namespace = "http://www.tempuri.org/DsOrderInfo.xsd";
//connect to database OleDbConnection Conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Request.PhysicalApplicationPath + "\\DemoData\\SageDemoData.mdb;Persist Security Info=False"); Conn.Open();
//get customer records Da = new OleDbDataAdapter("SELECT * FROM Customers WHERE CustomerID IN(SELECT DISTINCT CustomerID FROM Orders WHERE ExportedToSage=0)", Conn); Da.Fill(DsOrders, "Customers");
//get order records Da = new OleDbDataAdapter("SELECT * FROM Orders WHERE ExportedToSage=0", Conn); Da.Fill(DsOrders, "Orders");
//get order item records Da = new OleDbDataAdapter("SELECT * FROM OrderItems WHERE OrderID IN(SELECT DISTINCT OrderID FROM Orders WHERE ExportedToSage=0)", Conn); Da.Fill(DsOrders, "OrderItems");
//disconnect from database Conn.Close();
//clear any response data prior to outputing any XML Response.Clear();
//begin outputing XML Response.Write("<?xml version=\"1.0\" standalone=\"yes\" ?>\n"); Response.Write("<DsOrders xmlns=\"http://www.tempuri.org/DsOrderInfo.xsd\">\n");
foreach(DataRow Dr in DsOrders.Tables["Customers"].Rows) { Response.Write("\t<Customers>\n");
//Required Fields AddFieldToXML("CustomerID", Dr["CustomerID"]); AddFieldToXML("ContactName", Dr["ContactName"]); AddFieldToXML("Address1", Dr["Address1"]); AddFieldToXML("Town", Dr["City"]);
//Optional Fields (Used) AddFieldToXML("CompanyName", Dr["Company"]); AddFieldToXML("Address2", Dr["Address2"]); AddFieldToXML("County", Dr["County"]); AddFieldToXML("PostCode", Dr["PostCode"]); AddFieldToXML("Telephone", Dr["Tel"]); AddFieldToXML("Fax", Dr["Fax"]); AddFieldToXML("VatNumber", Dr["VATNumber"]); AddFieldToXML("CountryCode", Dr["CountryCode"]);
//Optional Fields (Not Used) //AddFieldToXML("EmailAddress", Dr["Type Field Name"]);
Response.Write("\t\t</Customers>\n"); }
//output orders XML foreach(DataRow Dr in DsOrders.Tables["Orders"].Rows) { Response.Write("\t<Orders>\n");
//Required Fields AddFieldToXML("CustomerID", Dr["CustomerID"]); AddFieldToXML("OrderID", Dr["OrderID"]); AddFieldToXML("OrderDate", Dr["OrderDate"]);
//Optional Fields (Used) AddFieldToXML("DelContactName", Dr["DelContactName"]); AddFieldToXML("DelCompany", Dr["DelCompany"]); AddFieldToXML("DelAddress1", Dr["DelAddress1"]); AddFieldToXML("DelAddress2", Dr["DelAddress2"]); AddFieldToXML("DelTown", Dr["City"]); AddFieldToXML("DelCounty", Dr["County"]); AddFieldToXML("DelPostCode", Dr["PostCode"]);
//Optional Fields (Not Used) //AddFieldToXML("Carriage", Dr["Type Field Name"]); //AddFieldToXML("CarriageTaxCode", Dr["Type Field Name"]); //AddFieldToXML("CcAuthCode", Dr["Type Field Name"]); //AddFieldToXML("CcCardType", Dr["Type Field Name"]); //AddFieldToXML("CcIssueNo", Dr["Type Field Name"]); //AddFieldToXML("CcNameOnCard", Dr["Type Field Name"]); //AddFieldToXML("CcNumber", Dr["Type Field Name"]); //AddFieldToXML("CcValidFrom", Dr["Type Field Name"]); //AddFieldToXML("CcValidTo", Dr["Type Field Name"]); //AddFieldToXML("DelCountry", Dr["Type Field Name"]);
Response.Write("\t</Orders>\n"); }
//output order items XML foreach(DataRow Dr in DsOrders.Tables["OrderItems"].Rows) { Response.Write("\t<OrderItems>\n");
//Required Fields AddFieldToXML("OrderID", Dr["OrderID"]); AddFieldToXML("Description", Dr["Description"]); AddFieldToXML("Price", Dr["Price"]); AddFieldToXML("ProductCode", Dr["PartNo"]); AddFieldToXML("Quantity", Dr["Qty"]);
//Optional Fields (Not Used) //AddFieldToXML("TaxCode", Dr["Type Field Name"]);
Response.Write("\t</OrderItems>\n"); }
//finish outputing XML Response.Write("</DsOrders>");
//End the response stream here to ensure nothing is send after the XML data. Response.End(); }
void AddFieldToXML(string FieldName, object Value) { if(Value != DBNull.Value) { Response.Write("\t\t<" + FieldName + ">" + Value.ToString().Replace("&", "&") + "</" + FieldName + ">\n"); } }
</script>
|