0

我正在尝试编写一个小 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();
    }

你怎么看?

4

2 回答 2

0

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

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

于 2012-07-10T06:29:45.780 回答
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"];
}
于 2012-07-10T06:03:33.473 回答