我正在尝试编写一个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();
}
您怎么看?
答案 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/