如果我用这个班做一个
SELECT * FROM ...
Run Code Online (Sandbox Code Playgroud)
针对数据库的语句,我应该使用这个类的哪个方法或变量来给我转储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();
}
Run Code Online (Sandbox Code Playgroud)
如果您尝试将结果输出到文件,一个非常天真的方法将是这样的:
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();
}
Run Code Online (Sandbox Code Playgroud)
这将生成一个基本的CSV文件.