Danke. Habe gerade zwei Wege ausprobiert und hier stellt sich mir die Frage was ist besser. Es geht um die Rückgabe der Werte z.B. beim Lesen aus einer Tabelle.
Auf der einen Seite habe ich diese Variante
C#-Code: |
oCommand.Connection.Open();
SqlDataReader oReader = oCommand.ExecuteReader();
while (oReader.Read())
{
string field1 = oReader[0].ToString();
...
}
|
(hier etwas verkürzt ohne Exception) auf der anderen diese:
C#-Code: |
sqlCommand.Connection.Open();
sqlDataAdapter = new SqlDataAdapter(sqlCommand);
DataSet = new DataSet();
try
{
sqlDataAdapter.Fill(this.DataSet);
this.returnDataTable = new DataTable();
}
catch (Exception ex)
{
string msg = ex.Message.ToString();
this.DataSet = null;
}
if ((this.DataSet != null) && (this.DataSet.Tables.Count > 0))
{
this.returnDataTable = this.DataSet.Tables[0];
}
else
{
this.returnDataTable = null;
}
try
{
sqlCommand.Connection.Close();
}
catch (Exception ex)
{
string msg = ex.Message;
}
finally
{
if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed)
{
sqlConnection.Close();
}
}
_disposed = false;
return returnDataTable;
|
mit anschließend
C#-Code: |
DataBase oDataBase = new DataBase(DataBase.pubEnvironment.production);
DataTable returnDataTable = oDataBase.Read(sqlString);
oDataBase.Dispose();
if (returnDataTable != null)
{
foreach (DataRow row in returnDataTable.Rows)
{
break;
}
}
|
Beide Wege erzeugen über den Konstruktor ein Objekt, in dem der Connection-String erzeugt wird und ein neues Object SQLConnection. Natürlich wird auch zuvor ein SqlCommand Objekt erzeugt.
Was wäre zu bevorzugen oder was ist schneller? Ziel ist es, DataGridViews zu füllen oder Comboboxen zu füllen, etc.
Gruß Hipp