2012-07-10 111 views
0

我正在嘗試編寫一個小的C#控制檯應用程序,該應用程序將在現有的ODBC連接上運行查詢並將ResultSet轉換爲XML文件。請問一些人,請說明一下嗎?將ODBC查詢結果轉換爲XML

我想用System.Xml.XmlReader執行下面的背景下,這個任務,

System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(); 
conn.ConnectionString = "FIL=MS Access;DSN=valid data source name"; 
string query = "SELECT * FROM Customers FOR XML AUTO, ELEMENTS"; 

    try { 
     OdbcCommand odbcComm = new OdbcCommand(query); 
     conn.Open(); 
     odbcComm.Connection = conn; 

     OdbcDataReader data = odbcComm.ExecuteReader(); 
         . 
         . 
         . 

    } catch (Exception ex) { 
      System.Console.WriteLine("Failed to connect to the data source"); 
    } finally { 
      conn.Close(); 
    } 

你覺得呢?

+0

你到目前爲止有什麼..你看過XML序列化或使用數據集? – MethodMan 2012-07-10 05:40:44

+0

XmlReader是一個很好的對象嗎? – Sam 2012-07-10 06:00:07

+0

是的,我會舉一個我已經使用過的例子,但是我的例子使用了一個Web服務,所以你可以通過實現你自己的解決方案來弄清楚我正在使用的東西的要點 – MethodMan 2012-07-10 06:02:15

回答

0

這是我使用web服務完成的。 我不打算把網絡服務代碼放在這裏,因爲工作中有拷貝的權利。 但這個代碼應該給你一個想法 基本上創建一個方法,並使節點部分從該方法的返回/結果,然後從那裏使用xmlnodeReader,並從那裏你需要什麼領域取代我在DataTable和行與你自己的字段名值

XmlNode node = svc.GetInfoByZIP("02116"); 
    DataSet ds = new DataSet(); 
    using (XmlNodeReader reader = new XmlNodeReader(node)) 
    { 
     ds.ReadXml(reader); 
    } 

    DataTable table = ds.Tables["Table"]; 
    DataRow row = table.Rows[0]; 
    string city = (string) row["CITY"]; 
    string state = (string) row["STATE"]; 
    string zip = (string) row["ZIP"]; 
}