I've written class in C# that performs a select statement in SQL Server and retrieves the reader rows into a DataTable. I then use the DataTable to populate a datagrid, listbox, etc...
I think this class is inefficient. Does anyone have any ideas to make it faster or cleaner if that is possible.
I think this class is inefficient. Does anyone have any ideas to make it faster or cleaner if that is possible.
Code:
class db_Select
{
public db_Select(string SQL)
{
SqlCommand myCommand = new SqlCommand(SQL, MainMenu.myConnection);
MainMenu.myConnection.Open();
SqlDataReader myReader = myCommand.ExecuteReader();
DataTable SchemaTable = myReader.GetSchemaTable();
MainMenu.myDataTable.Clear();
while (MainMenu.myDataTable.Columns.Count > 0)
{
MainMenu.myDataTable.Columns.RemoveAt(0);
}
foreach (DataRow myField in SchemaTable.Rows)
{
foreach (DataColumn myProperty in SchemaTable.Columns)
{
if (myProperty.ColumnName == "ColumnName")
{
MainMenu.myDataTable.Columns.Add(myField[myProperty].ToString());
}
}
}
while (myReader.Read())
{
object[] myObject = new object[MainMenu.myDataTable.Columns.Count];
for (int i = 0; i < MainMenu.myDataTable.Columns.Count - 1; i++)
{
myObject[i] = myReader[i];
}
MainMenu.myDataTable.Rows.Add(myObject);
}
MainMenu.myConnection.Close();
}
}
Comment