【发布时间】:2015-06-02 19:10:18
【问题描述】:
我有一个用 Visual Studio 编写的程序。代码如下:
namespace SQL_Connectivity
{
class Program
{
static void Main(string[] args)
{
SqlConnection conn = new SqlConnection("Server=************.database.windows.net,0000;Database=testdb;User ID=testuser;Password= testpassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;");
conn.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM District WHERE leaID <= 4 FOR XML PATH('districtEntry'), ROOT('districts')", conn);
SqlDataReader reader = cmd.ExecuteReader();
string path = @"District." + DateTime.Now.ToString("yyyyMMdd") + ".xml";
var writer = new StreamWriter(path);
while(reader.Read())
{
Console.SetOut(writer);
Console.WriteLine(reader.GetString(0));
}
reader.Close();
conn.Close();
}
}
}
假设 SqlConnection 字符串是有效的。查询继续查询数据库并以完美格式返回结果。但是,当它通过我的代码时,它会保存在一个 XML 文件中,如下所示:
<districts><districtEntry><leaID>01</leaID><name>Alachua</name> <organizationType>LEA</organizationType><streetLine1>620 E University Ave</streetLine1><city>Gainesville</city><stateProvince>FL</stateProvince><postalCode>326015448</postalCode><county>Alachua</county><NCESID_district>1200030</NCESID_district><date_created>2015-06-01T20:38:58.9730000</date_created><date_updated>2015-06-01T20:38:58.9730000</date_updated></districtEntry><districtEntry><leaID>02</leaID><name>Baker</name><organizationType>LEA</organizationType><streetLine1>270 South Blvd E</streetLine1><city>MacClenny</city><stateProvince>FL</stateProvince><postalCode>320632538</postalCode><county>Baker</county><NCESID_district>1200060</NCESID_district><date_created>2015-06-01T20:38:58.9730000</date_created><date_updated>2015-06-01T20:38:58.9730000</date_updated></districtEntry><districtEntry><leaID>03</leaID><name>Bay</name><organizationType>LEA</organizationType><streetLine1>1311 Balboa Ave</streetLine1><city>Panama City</city><stateProvince>FL</st
这一切都以一行结束,并且我的代码没有完成 XML 文件(最后缺少数据)。它似乎总是停在表中最后一行之前的行。我也用多个表试过这个。
请问有没有办法
- 格式化我的 XML 文件,使其在单独的行上美观整洁。
- 调整我的代码,以便查询的结果准确地保存到 XML 文件中。
【问题讨论】:
-
reader.Getstring(0) 在运行时的调试预览中是否返回正确的结果
-
这甚至不是 VB 语法,而是 C#!
-
@har07 是的,抱歉,我的意思是说我正在使用 Visual Studio 编写 C#。这是漫长的一天。
-
@BrandonLumsden 没问题,只要你澄清一下
标签: c# sql-server xml