C# c查询到txt

C# c查询到txt,c#,sql,C#,Sql,我在这里读了一个例子: 并想进行一次测试读取,选择并将其写入文件: SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); SqlDataReader reader; cmd.CommandText = "SELECT * FROM Customers"; cmd.CommandType = CommandType.Text; c

我在这里读了一个例子:

并想进行一次测试读取,选择并将其写入文件:

SqlConnection sqlConnection1 = new SqlConnection("Your Connection String");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;

cmd.CommandText = "SELECT * FROM Customers";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;

sqlConnection1.Open();

reader = cmd.ExecuteReader();
// Data is accessible through the DataReader object here.
 System.IO.File.WriteAllText(@"C:\stupidtest\customers.txt", reader.ReadToEnd());
sqlConnection1.Close();
但是我不能,因为'SqlDataReader'不包含'ReadToEnd'的定义,并且找不到接受'SqlDataReader'类型的第一个参数的扩展方法'ReadToEnd'

那么,如何将简单的select转换成一个txt文件,并输出如下

dasdgdsgsdg     asgasg    sadgasdgasdg          agdsfg
sdasdgasdgasgg  sdfasdfa  sadfasdfasdgasdgasdg  sadgasgdgda
a               asd       gdgasdg               asdfgghh
如果我使用:

using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"C:\stupidtest\customers.txt"))
            {
while (reader.HasRows)
            {                       
                while (reader.Read())
                {
                    file.WriteLine(reader.GetString());
                }
                reader.NextResult();
            }
我能做到吗?

类似这样的事情:

static string ReadToEnd(this SqlDataReader rdr){
    StringBuilder MyStringBuilder = new StringBuilder();
    while (rdr.Read())
    {
        String line = "";
        for(int i=0;i<rdr.FieldCount;i++)
        {
            line+=rdr.GetString(i)+@"\t";

        }
        MyStringBuilder.AppendLine(line);
    }
    return MyStringBuilder.ToString();
}

读卡器包含多行上的多个列,可能包含多个类型,它们没有单一的文本表示形式,如果需要,可以手动循环每行中的每一列以生成字符串。ReadToEnd在TextReader上定义,TextReader是StreamReader的基类。SqlDataReader不是文本阅读器-它是一个DbDataReader@grant亚历克斯,普雷斯顿:谢谢你指出这一点。我编辑了这个问题。@Malkavian您可以使用Sqlcommand cmd=new-SqlcommandSELECT*from Customers,sqlConnection1@Malkavian你不需要线路阅读器。NextResult;您可以用ifreader!=null&&reader.HasRowsiirc GetString将抛出一个dbnull谢谢,我将建立一个测试环境并进行检查。同意Alex K。需要添加IsDBNull检查