SQL Server Database Explorer


Using DataSets

This application connects to a running SQL Server 2000 and displays all the available databases in it.

On selecting the database it shows all the User Tables in that database in a ComboBox. After selecting the table it shows the Table in DataGrid.If there are any relations present between tables it shows them in the DataGrid. Here I have shown relations for only Order,OrderDetails and Customers Table in Northwind Database.

By modifying the code it can be used to show relation in all the tables.

Application requires

.NET Framework version Beta2 or final
SQLServer2000

How to run

In SQLServer2000 select the NorthwindDatabase choose Order Details table and rename it to OrderDetails(Remove the space between Order and Details ).

Copy this file and save as DataBaseExplorer.cs

Compile it on Command prompt as
csc /r:System.dll;System.data.dll;System.drawing.dll DataBaseExplorer.cs

Then run as DataBaseExplorer

To see the relation between the tables you have to select the tables Orders,OrederDetails and Customers. Only after selecting these tables u can see Customers table showing the relationship as shown in the following figure.

You can explore and view any table in the connected SQLServer. What you learn

  • Using DataSets
  • Event Handling
  • Building WinForms Application

How it works

variables used for explanation

  • lblDatabases- Label
  • cmbDatabases-ComboBox to display database names
  • lblTables-Label
  • myDataGrid -DataGrid to display selected Table

The WinForm contains one label,two CombBoxes and a DataGrid to show the tables.In the constructor add all these components to Form using

this.Controls.AddRange( new Control [] {lblDatabases,cmbDatabases,lblTables,cmbTables,myDataGrid });

When application runs we bind the DataGrid to a default table in default database using

cmbDatabases.DataSource = ajitDB.DBWin.getDataSet(null,null,null);
cmbDatabases.DisplayMember = "sysdatabases.name";

It shows master table as selected table.We write a gereric getDataSet method to return the appropriate DataSet based on SQL query, connection string and table name.We have some utility methods to carryout validations etc..This application uses a single DataSet object.To avoid adding duplicate tables to a Dataset we have a method isDuplicate to check whether table already exists in a DataSet.

Based on the selection of either a database or a table the SQL query is generated dynamically.Based on this query DataGrid is populated.

Enhancements

This application can be modified to update the Tables. By making it more generic we can use this application to connect to any SQLServer. Here name of the SQLServer is hard coded.


Similar Articles