【发布时间】:2016-12-18 16:32:00
【问题描述】:
我有一个查询,它提供超过 500 行,我根据特定列(例如名称)对它们进行了排序,并且我正在将结果写入文本文件中。 我想在每组的最后一行之后添加一个中断记录。 比如我的查询结果是:
Name Address City State Zip Phone Break
AAA BBB CCC SS 1234 555
AAA DDD EEE SS 1234 666
MMM YYY ZZZ EE 4457 999
LLL DDD ooo WW 7895 777
但我想添加一个额外的行并在文本文件中添加“是”作为中断值:
Name Address City State Zip Phone Break
AAA BBB CCC SS 1234 555
AAA DDD EEE SS 1234 666
YES
MMM YYY ZZZ EE 4457 999
YES
LLL DDD ooo WW 7895 777
YES
我的代码是:
string query = " select * from table order by name";
SqlDataReader reader;
string connStr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
string strDelimiter = "\t";
string strDel = "\"";
string strFilePath = @"C:\" TextFile_" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
StringBuilder sb = new StringBuilder();
using (SqlConnection conn = new SqlConnection(connStr))
{
conn.Open();
using (reader = new SqlCommand(query, conn).ExecuteReader())
{
for (int i = 0; i < reader.FieldCount; i++)
{
sb.Append(strDel);
sb.Append(reader.GetName(i));
sb.Append(strDel);
if (i == reader.FieldCount - 1)
{
continue;
}
sb.Append(strDelimiter);
}
sb.Append(Environment.NewLine);
if (reader.HasRows)
{
Object[] items = new Object[reader.FieldCount];
while (reader.Read())
{
reader.GetValues(items);
for (int i = 0; i < reader.FieldCount; i++)
{
sb.Append(strDel);
sb.Append(reader.GetValue(i).ToString());
sb.Append(strDel);
if (i == reader.FieldCount - 1)
{
continue;
}
sb.Append(strDelimiter);
}
sb.Append(Environment.NewLine);
}
}
}
conn.Close();
File.WriteAllText(strFilePath, sb.ToString());
}
【问题讨论】:
-
分享你的代码到现在
-
我用代码更新了问题,但这只是给了我所有的数据,我想不出在每个组之后添加换行符的方法