C#的SQLServer检索在.csv格式的结果和地点 [英] C# SQLServer retrieving results and place in a .csv format
问题描述
我在网站上,并在谷歌看看,但我似乎无法找到一个很好的解决了我想要做的。
I had a look on the site and on Google, but I couldn't seem to find a good solution to what I'm trying to do.
基本上我有一个客户端服务器应用程序(C#),我向服务器发送SQL SELECT语句(连接到SQL Server 2008),并想在一个CSV方式返回给客户端返回结果。
Basically, I have a client server application (C#) where I send the server an SQL select statement (Connecting to SQL Server 2008) and would like to return results in a CSV manner back to the client.
到目前为止,我有以下几点:
So far I have the following:
if (sqlDataReader.HasRows)
{
while(sqlDataReader.Read())
{
//not really sure what to put here and if the while should be there!
}
}
`
} `
不幸的是,我是真正的新连接C#与SQL。我需要关于如何简单地把结果在一个字符串CSV格式的任何提示。列和字段都可能是不同的,所以我不能用的东西[事情]我在几个网站见过的方法。我不知道如果我是可以理解的TBH!
Unfortunately, I'm really new to connecting C# with SQL. I need any tips on how to simply put the results in a string in a csv format. The columns and fields are likely to be different so I cannot use the method of something[something] as I've seen in a few sites. I'm not sure if I'm being comprehensible tbh!
我真的很感激任何提示/如何去这个问题,请!
I would really appreciate any tips / points on how to go about this please!
推荐答案
下面是我使用转储任何的IDataReader到一个StreamWriter的方法。我一般创建这样的StreamSwriter:新的StreamWriter(Response.OutputStream)
。我转换任何双引号字符输入到单引号字符(也许不是来处理这最好的方式,但它为我工作)。
Here is a method I use to dump any IDataReader out to a StreamWriter. I generally create the StreamSwriter like this: new StreamWriter(Response.OutputStream)
. I convert any double-quote characters in the input into single-quote characters (maybe not the best way to handle this, but it works for me).
public static void createCsvFile(IDataReader reader, StreamWriter writer) {
string Delimiter = "\"";
string Separator = ",";
// write header row
for (int columnCounter = 0; columnCounter < reader.FieldCount; columnCounter++) {
if (columnCounter > 0) {
writer.Write(Separator);
}
writer.Write(Delimiter + reader.GetName(columnCounter) + Delimiter);
}
writer.WriteLine(string.Empty);
// data loop
while (reader.Read()) {
// column loop
for (int columnCounter = 0; columnCounter < reader.FieldCount; columnCounter++) {
if (columnCounter > 0) {
writer.Write(Separator);
}
writer.Write(Delimiter + reader.GetValue(columnCounter).ToString().Replace('"', '\'') + Delimiter);
} // end of column loop
writer.WriteLine(string.Empty);
} // data loop
writer.Flush();
}
这篇关于C#的SQLServer检索在.csv格式的结果和地点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!