从SQL命令文本到DataSet的直接方法

P.B*_*key 50 c# sql dataset

如果我有一个sql命令,获取DataSet的最直接途径是什么?

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

DataSet = GetDataSet(sqlCommand,connectionString);

GetDataSet()
{
   //...?
}
Run Code Online (Sandbox Code Playgroud)

我开始使用SqlConnectionSqlCommand,但我在API中看到的最接近的是SqlCommand.ExecuteReader().使用这种方法,我需要得到一个SqlDataReader,然后DataSet手动将其转换为.我认为有更直接的途径来完成任务.

如果更容易,DataTable也将符合我的目标.

Adr*_*iro 87

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;
}
Run Code Online (Sandbox Code Playgroud)


jp2*_*ode 25

完成它.

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

DataSet ds = GetDataSet(sqlCommand, connectionString);
Run Code Online (Sandbox Code Playgroud)
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;
}
Run Code Online (Sandbox Code Playgroud)