将ODBC查询结果转换为XML

时间:2012-07-10 05:38:21

标签: c# visual-studio-2010 odbc

我正在尝试编写一个C#控制台应用程序,该应用程序将在现有ODBC连接上运行查询并将ResultSet转换为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();
    }

您怎么看?

2 个答案:

答案 0 :(得分: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"];
}

答案 1 :(得分:0)

以下是您想要做的一个示例,尽管它是使用OleDB完成的。您可以忽略OleDB连接代码(将其替换为ODBC等效项),并通过使用模式将其格式化为XML来专注于使用MS Access数据库中的数据填充DataSet的部分:

http://nathanbrixius.wordpress.com/2010/07/21/converting-an-access-db-to-xml-using-c/