using System;
using System.Data;
using System.Xml;
using System.Data.OleDb;
using System.Data.SqlClient;
namespace CSCommand
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
DataSet ds = new DataSet();
FillMyDataSet(ds);
System.Xml.XmlDataDocument xmlDataDoc = new XmlDataDocument(ds);
XmlNode nodOrder;
string strXPathQuery;
strXPathQuery = "/NewDataSet/Orders[OrderID = 10268]";
//XPath Query는 DataSet의 내용에서 하위항목을 지정해서 가져 오게 한다.
//--/NewDataSet/Orders[OrderID = 10268]-->여기에서 NewDataSet 은 DataSet의 이름을 지정 하는 것이고 뒤이어 나오는 Orders는 테이블 이름이다.
//OrderID = 10268는 아시다시피 조건문이다.
nodOrder = xmlDataDoc.SelectSingleNode(strXPathQuery);
Console.WriteLine("OrderID = " + nodOrder.ChildNodes[0].InnerText);
Console.WriteLine("CustomerID = " + nodOrder.ChildNodes[0].InnerText);
Console.WriteLine("OrderDate = " + nodOrder.ChildNodes[0].InnerText);
Console.WriteLine("Line Items :");
strXPathQuery = "/NewDataSet/Order_x0020_Details[OrderID=10268]";
foreach(XmlNode nodDetail in xmlDataDoc.SelectNodes(strXPathQuery))
{
Console.WriteLine("\tProductID = " + nodDetail.ChildNodes[1].InnerText);
Console.WriteLine("\tQuantity = " + nodDetail.ChildNodes[2].InnerText);
Console.WriteLine("\tUnitPrice = " + nodDetail.ChildNodes[3].InnerText);
}
}
static void ShowXmlInIE(string strPathToXml)
{
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorerClass();
object objEmpty = Type.Missing;
ie.Navigate(strPathToXml, ref objEmpty, ref objEmpty, ref objEmpty, ref objEmpty);
ie.Visible= true;
}
public static void FillMyDataSet(DataSet ds)
{
string strConn, strSQL;
strConn = "Provider=SQLOLEDB;User ID=sa;Password=gatsol;Initial Catalog=NorthWind;Data Source=211.236.186.207;";
OleDbDataAdapter daOrders, daDetails;
strSQL = "Select OrderID, CustomerID, OrderDate from Orders Where CustomerID = 'Grosr'";
daOrders = new OleDbDataAdapter(strSQL, strConn);
strSQL = "Select OrderID, ProductID, Quantity, UnitPrice From [Order Details] Where OrderID in (Select OrderID from Orders Where CustomerID = 'Grosr') ";
daDetails = new OleDbDataAdapter(strSQL, strConn);
daOrders.Fill(ds, "Orders");
daDetails.Fill(ds, "Details");
}
}
}