Прямой метод из текста команды SQL в DataSet

Каков самый прямой маршрут для получения DataSet, если у меня есть команда sql?

string sqlCommand = "SELECT * FROM TABLE";
string connectionString = "blahblah";

DataSet = GetDataSet(sqlCommand,connectionString);

GetDataSet()
{
   //...?
}

Я начал с SqlConnection и SqlCommand, но самое близкое, что я вижу в API, - SqlCommand.ExecuteReader(). С помощью этого метода мне нужно получить SqlDataReader, а затем преобразовать его в DataSet вручную. Я считаю, что есть более прямой путь для выполнения задачи.

Если проще, то DataTable также будет соответствовать моей цели.

Ответ 1

public DataSet GetDataSet(string ConnectionString, string SQL)
{
    SqlConnection conn = new SqlConnection(ConnectionString);
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommand cmd = conn.CreateCommand();
    cmd.CommandText = SQL;
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();

    conn.Open();
    da.Fill(ds);
    conn.Close();

    return ds;
}

Ответ 2

Просто закончите.

string sqlCommand = "SELECT * FROM TABLE";
string connectionString = "blahblah";

DataSet ds = GetDataSet(sqlCommand, connectionString);
 
DataSet GetDataSet(string sqlCommand, string connectionString)
{
    DataSet ds = new DataSet();
    using (SqlCommand cmd = new SqlCommand(
        sqlCommand, new SqlConnection(connectionString)))
    {
        cmd.Connection.Open();
        DataTable table = new DataTable();
        table.Load(cmd.ExecuteReader());
        ds.Tables.Add(table);
    }
    return ds;
}