如果我使用此类来做一个
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文件。