gpt4 book ai didi

C# SQL 导出格式化

转载 作者:行者123 更新时间:2023-11-30 22:48:06 24 4
gpt4 key购买 nike

我在设置此代码以我想要的格式导出文本时遇到问题,任何提示都很好。

场景:我有一个从 SQL 查询填充的列表框。该列表框有一个按钮来填充列表框 2。列名是从 listbox1 中选择的任何列,数据是相应的数据。我能够在数据集中设置这种格式,但我必须将其更改为海量数据库。

我在将我的数据集代码格式化为此流代码时遇到问题。我需要导出为以下格式。

Column name|Column name|Column name|Column name|Column name|Column name|

数据|数据|数据|数据|数据|数据|数据|数据|数据|数据|数据|数据|数据

SqlConnection con = new SqlConnection("Data Source=" + server + ";Initial Catalog=" + database + ";Integrated Security=" + security);
con.Open();
using (FileStream strm = new FileStream(exportfile, FileMode.Create))
{
using (StreamWriter writer = new StreamWriter(strm))
{
SqlCommand cmd = new SqlCommand(sql, con);
IDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
writer.Write(rdr[0].ToString() + "|" + rdr[1].ToString());
}
}

这是完美导出的数据集代码:

DataTable tbltarget = dataset.Tables[0];
string output_text =
tbltarget.Columns.Cast<DataColumn>().ToList()
.Select(col => col.ColumnName)
.Aggregate((current, next) => current + "|" + next) + "\r\n"
+
tbltarget.Rows.Cast<DataRow>().ToList()
.Select(row => row.ItemArray.Aggregate((current, next) => current.ToString() + "|" + next.ToString().Replace("\n", "")))
.Cast<string>().Aggregate((current, next) => current + "\r\n" + next);
File.WriteAllText(@"C:\InPrep\" + textBox1.Text + "\\CI\\cnr.txt", output_text);

更新代码:

using (FileStream strm = new FileStream(exportfile, FileMode.Create))
{
using (StreamWriter writer = new StreamWriter(strm))
{
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataReader reader = cmd.ExecuteReader();
for (int i = 0; i < reader.FieldCount; i++)
writer.Write((i==0?"":"|") + reader.GetName(i));
writer.Write("\n");
while(reader.Read())
{
for (int i =0; i < reader.FieldCount; i++)
writer.Write((i==0?"":"|") + reader[i].ToString().Replace(@"<me> ", string.Empty).Replace(@" </me>|", "").Replace(@" </me>", ";").Replace('\n', ' ').Replace('\r', ' ') + "|");
writer.WriteLine();
}
reader.Close();
}
}

最佳答案

问题在于您处理来自读者的信息的方式。将 Console.Write* 替换为您的代码的 Stream.Write*。试试这个,

SqlDataReader reader = cmd.ExecuteReader();

//Print the column names.
for(int i=0; i < reader.FieldCount; i++)
Console.Write((i==0?"":"|") + reader.GetName(i));
Console.WriteLine();

//Process each record, note that reader.Read returns one record at a time.
while(reader.Read())
{
for(int i=0; i < reader.FieldCount; i++)
Console.Write((i==0?"":"|") + reader[i].ToString().Replace('\r', ' ').Replace('\n', ' '));
Console.WriteLine();
}
reader.Close();

关于C# SQL 导出格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1907620/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com