System.Data.Common.DbDataReader

CJ7*_*CJ7 1 .net sql

如果我用这个班做一个

SELECT * FROM ...
Run Code Online (Sandbox Code Playgroud)

针对数据库的语句,我应该使用这个类的哪个方法或变量来给我转储SQL语句的输出?

Dan*_*haw 5

使用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文件.