SqlDataAdapter.Fill() vs. DataTable.Load()C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 SqlDataAdapter.Fill() vs. DataTable.Load()

Post by Anonymous »

Ich komme von dieser Frage hier, aber ich habe einen anderen Fall. Ich benötige mein Ergebnis in einer DataTable und habe zwei mögliche Methoden:

Code: Select all

public static DataTable SelectDataTable(string query, string ConnectionString)
{
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
using (SqlDataAdapter myDataAdapter = new SqlDataAdapter(query, myConnection))
{
DataTable dt = new DataTable();
myDataAdapter.Fill(dt);
return dt;
}
}
}
und

Code: Select all

public static DataTable SelectDataTable(string query, string ConnectionString)
{
using (SqlConnection myConnection = new SqlConnection(ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(query, myConnection))
{
myConnection.Open();
DataTable dt = new DataTable();
dt.Load(cmd.ExecuteReader(CommandBehavior.CloseConnection));
return dt;
}
}
}
also meine Frage: Gibt es einen Unterschied zwischen

?

Code: Select all

SqlDataAdapter
+ Fill()
und

Code: Select all

SqlDataReader
+ DataTable + Load()

Welche dieser Methoden ist zu bevorzugen?


Die Antwort von Joel ist ziemlich detailliert. Warum ist diese Frage kein Duplikat?


Tatsächlich nutze ich nicht alle erwähnten Vorteile des SqlDataReader. Ich verwende ihn, um eine DataTable zu füllen, und das lässt mich die Antwort wie folgt erwarten: Es ist das Gleiche?! Leider ist es schwer zu erraten, was unter der Haube passiert.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post