System.Data.Common.DbDataReader
如果我使用此类来做一个
SELECT * FROM ...
针对数据库的语句,我应该仅使用哪种方法或此类的变量来转储SQL语句的输出?
回答:
使用DbDataReader时,您需要迭代所有结果,如下所示:
using (DbDataReader dataReader = dbCommand.ExecuteReader()){
while (dataReader.Read())
{
// Get the values of the fields in the current row
// For example, if the first column is a string...
string firstColumn = dataReader.GetString(0);
}
dataReader.Close();
}
如果您尝试将结果输出到文件中,那么非常幼稚的方法将是这样的:
using (StreamWriter streamWriter = new StreamWriter(path)){
using (DbDataReader dataReader = command.ExecuteReader())
{
while (dataReader.Read())
{
for (int index = 0; index < dataReader.FieldCount; index++)
{
streamWriter.Write(dataReader.GetValue(index));
if (index < dataReader.FieldCount - 1)
{
streamWriter.Write(',');
}
else
{
streamWriter.WriteLine();
}
}
}
dataReader.Close();
}
streamWriter.Close();
}
这将生成一个基本的CSV文件。
以上是 System.Data.Common.DbDataReader 的全部内容, 来源链接: utcz.com/qa/410863.html