在xml文件中存入的是sql server数据库中的一张表的所有数据,如何在.net中访问这个xml文件?

majh1121 2004-04-29 02:54:36
在文件中存入的是sql server数据库中的一张表的所有数据,如何在.net中访问这个xml文件?(类似于直接访问sql server数据库中的一张表)
...全文
72 12 点赞 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cloud_scorpion 2004-05-10
SqlConnection conn=new SqlConnection("server=zzg;uid=sa;pwd=;database=scyz");
SqlDataAdapter da=new SqlDataAdapter("select * from driverschool",conn);
DataSet ds=new DataSet("XmlProducts");
da.Fill(ds,"driverschool");
ds.WriteXml("d:\\driverschool.xml",XmlWriteMode.IgnoreSchema);

DataGrid2.DataSource=ds;
DataGrid2.DataMember="driverschool";
DataGrid2.DataBind();
  • 打赏
  • 举报
回复
zhjboss 2004-05-07
比较其它的好,速度快
  • 打赏
  • 举报
回复
Jinniu 2004-04-30
用xsl来取xml中的数据
  • 打赏
  • 举报
回复
dqmayg 2004-04-30
问:zhjboss(小张)
操作xmlDom的效率如何??
  • 打赏
  • 举报
回复
flyincs 2004-04-30
up
  • 打赏
  • 举报
回复
zhjboss 2004-04-30
同步的 DataSet 和 XmlDataDocument 之间存在的关系为您提供了访问 XmlDataDocument 的 XML 服务(如 XML 路径语言 (XPath) 查询),这些服务可以比直接访问 DataSet 更为方便地执行某些功能。例如,不必使用 DataTable 的 Select 方法将关系导航到 DataSet 中的其他表,而可以对与 DataSet 同步的 XmlDataDocument 执行 XPath 查询,从而以 XmlNodeList 形式获取 XML 元素的列表。XmlNodeList 中的节点将转换为 XmlElement 节点,然后可以传递到 XmlDataDocument 的 GetRowFromElement 方法,以返回对同步 DataSet 中表行的匹配 DataRow 引用。
例如,以下代码示例执行“孙子”XPath 查询。该 DataSet 中填充了三个表:Customers、Orders 和 OrderDetails。在该示例中,将首先在 Customers 和 Orders 表之间以及 Orders 表和 OrderDetails 表之间创建父子关系。然后,执行 XPath 查询来返回特定 Customers 节点的 XmlNodeList,在这些 Customers 节点中,孙子 OrderDetails 节点包含值为 43 的 ProductID 节点。实质上,该示例是在使用 XPath 查询来确定哪些客户订购了 ProductID 为 43 的产品。
using System;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
public class Sample
{
public static void Main()
{
SqlConnection nwindConn = new SqlConnection("Data Source=localhost;Initial Catalog=northwind;Integrated Security=SSPI;");
nwindConn.Open();

DataSet myDataSet = new DataSet("CustomerOrders");

SqlDataAdapter custDA = new SqlDataAdapter("SELECT * FROM Customers", nwindConn);
custDA.Fill(myDataSet, "Customers");

SqlDataAdapter ordersDA = new SqlDataAdapter("SELECT * FROM Orders", nwindConn);
ordersDA.Fill(myDataSet, "Orders");

SqlDataAdapter detailsDA = new SqlDataAdapter("SELECT * FROM [Order Details]", nwindConn);
detailsDA.Fill(myDataSet, "OrderDetails");

nwindConn.Close();

myDataSet.Relations.Add("CustOrders",
myDataSet.Tables["Customers"].Columns["CustomerID"],
myDataSet.Tables["Orders"].Columns["CustomerID"]).Nested = true;

myDataSet.Relations.Add("OrderDetail",
myDataSet.Tables["Orders"].Columns["OrderID"],
myDataSet.Tables["OrderDetails"].Columns["OrderID"], false).Nested = true;

XmlDataDocument xmlDoc = new XmlDataDocument(myDataSet);

XmlNodeList nodeList = xmlDoc.DocumentElement.SelectNodes("descendant::Customers[*/OrderDetails/ProductID=43]");

DataRow myRow;
foreach (XmlNode myNode in nodeList)
{
myRow = xmlDoc.GetRowFromElement((XmlElement)myNode);
if (myRow != null)
Console.WriteLine(myRow[0]);
}
}
}
  • 打赏
  • 举报
回复
graybelt 2004-04-30
private void button3_Click(object sender, System.EventArgs e)
{
DataSet ds=new DataSet("XmlProducts");
ds.ReadXml("d:\\pro.xml");
dataGrid1.DataSource=ds;
dataGrid1.DataMember="products";
foreach(DataTable dt in ds.Tables)
{
listBox1.Items.Add(dt.TableName);
foreach(DataColumn col in dt.Columns)
{
listBox1.Items.Add("\t"+col.ColumnName+"."+col.DataType.FullName);
}
}
}
  • 打赏
  • 举报
回复
majh1121 2004-04-29
能说的详细点吗?最好给个例子。。。谢谢
  • 打赏
  • 举报
回复
yistudio 2004-04-29
星者然也
这样最好
  • 打赏
  • 举报
回复
dicman 2004-04-29
先using System.Xml;

XmlDocument doc = new XmlDocument();
doc.Load(xmlfilename.xml);
  • 打赏
  • 举报
回复
wangsaokui 2004-04-29
有这个using System.SqlXml 吗?

Dataset.ReadXml("your xml file name");
然后再datatable.select("where clause")或是干别的事情。
  • 打赏
  • 举报
回复
qifanghcy 2004-04-29
。NET中有关于XML的命名空间:using System.SqlXml 好像是这个吧,里面的操作方法与操作SQL表的方法基本上一样。
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-04-29 02:54
社区公告

让您成为最强悍的C#开发者