C# 如何将sql查询结果转换为xml文件
我有一个sql查询,从表中选择一些数据C# 如何将sql查询结果转换为xml文件,c#,sql,sql-server,xml,C#,Sql,Sql Server,Xml,我有一个sql查询,从表中选择一些数据 ID Name Number Email 1 a 123 a@a.com 2 b 321 b@b.com 3 c 432 c@c.com 我从表中获取这些数据。我想从数据中创建一个xml文件。像这样 <Students> <Student> <id>1</id>
ID Name Number Email
1 a 123 a@a.com
2 b 321 b@b.com
3 c 432 c@c.com
我从表中获取这些数据。我想从数据中创建一个xml文件。像这样
<Students>
<Student>
<id>1</id>
<name>a</name>
<number>123</number>
<email>a@a.com</email>
</Student>
<Student>
<id>2</id>
<name>b</name>
<number>321</number>
<email>b@b.com</email>
</Student>
<Student>
<id>3</id>
<name>c</name>
<number>432</number>
<email>c@c.com</email>
</Student>
</Students>
1.
A.
123
a@a.com
2.
B
321
b@b.com
3.
C
432
c@c.com
如何在C#和SQL Server上执行此操作?试试以下方法:
SELECT *
FROM dbo.YourStudentTable
FOR XML PATH('Student'), ROOT ('Students')
这应该正好返回您要查找的XML(假设您有SQL Server2005或更高版本)
阅读尽管marc提供的解决方案正是您所需要的,但您可能希望更深入地了解本文中的各种选项。1)创建名为student的类
[Serializable]
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public string Email { get; set; }
}
2) 将数据从数据库中获取到名为StudentList
的列表中
3) 然后打开或创建xml文件并添加值
using (XmlWriter writer = XmlWriter.Create("Student.xml"))
{
writer.WriteStartDocument();
writer.WriteStartElement("Students");
foreach (Student student in StudentList)
{
writer.WriteStartElement("Student");
writer.WriteElementString("id", student.ID.ToString());
writer.WriteElementString("name", student.Name.ToString());
writer.WriteElementString("number", student.Number.ToString());
writer.WriteElementString("email", student.Email.ToString());
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
}
SQL Server: 这只是一个补充——请注意,xml是区分大小写的,生成的xml如下所示
<Students>
<Student>
<ID>1</ID>
<Name>a</Name>
<Number>123</Number>
<Email>a@a.com</Email>
</Student>
</Students>
C#:
您可以使用以下方法:
或者使用Linq到XML:
new XElement("Students", dt.AsEnumerable().Select(r =>
new XElement("Student",
new XElement("id", r["id"]),
new XElement("name", r["name"]),
new XElement("number", r["number"]),
new XElement("email", r["email"])
)));
您可以使用
DataSet.GetXml()
函数来获取XML格式文件中的结果您想要创建XML文件或类似xmlI不知道的结构。这几乎是我的一年。谢谢你。
var ds = new DataSet("Students");
var dt = ds.Tables.Add("Student");
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Columns.Add("number", typeof(string));
dt.Columns.Add("email", typeof(string));
dt.Rows.Add(1, "a", "123", "a@a.com");
dt.Tables[0].Rows.Add(2, "b", "321", "b@b.com");
dt.Tables[0].Rows.Add(3, "c", "432", "c@c.com");
var stream = new StringWriter();
ds.WriteXml(stream);
new XElement("Students", dt.AsEnumerable().Select(r =>
new XElement("Student",
new XElement("id", r["id"]),
new XElement("name", r["name"]),
new XElement("number", r["number"]),
new XElement("email", r["email"])
)));