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

回到顶部