wake-up-neo.com

Direkte Methode vom SQL-Befehlstext zu DataSet

Was ist der direkteste Weg, um ein DataSet zu erhalten, wenn ich einen SQL-Befehl habe?

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

DataSet = GetDataSet(sqlCommand,connectionString);

GetDataSet()
{
   //...?
}

Ich habe mit SqlConnection und SqlCommand angefangen, aber das, was ich in der API sehe, ist SqlCommand.ExecuteReader(). Mit dieser Methode muss ich eine SqlDataReader abrufen und diese dann manuell in eine DataSet umwandeln. Ich denke, es gibt einen direkteren Weg, um die Aufgabe zu erledigen.

Wenn es einfacher ist, passt auch eine DataTable zu meinem Ziel.

46
P.Brian.Mackey
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;
}
84
Adrian Carneiro

Beende es einfach.

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;
}
23
jp2code
public static string textDataSource = "Data Source=localhost;Initial Catalog=TEST_C;User ID=sa;[email protected]";

public static DataSet LoaderDataSet(string StrSql)      
{
    SqlConnection cnn;            
    SqlDataAdapter dad;
    DataSet dts = new DataSet();
    cnn = new SqlConnection(textDataSource);
    dad = new SqlDataAdapter(StrSql, cnn);
    try
    {
        cnn.Open();
        dad.Fill(dts);
        cnn.Close();

        return dts;
    }
    catch (Exception)
    {

        return dts;
    }
    finally
    {
        dad.Dispose();
        dts = null;
        cnn = null;
    }
}
0