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检查