Simple Query Tool to Extract Data from Database






4.24/5 (12 votes)
This is a simple user friendly query tool which helps end-users to extract data from the database. The UI looks similar to query windows in Team Foundation Server, this is a modest beginning which can be enhanced and used more effectively.
Introduction
The are various ways to design a UI that helps users to extract specific information from the database. This tool whose UI design is similar to the queries windows in TFS helps users to extract specific data by helping the user to create or form a query.
Background
This idea is similar to the query tools available in SQL server and TFS, but it is customized to the user's needs.
Using the Code
The Query tool hosts various controls in the grid, which get added on the fly while the user clicks through each of the cells, but still makes sure the user doesn't end up creating a garbled query.
Event based Asynchronous programming is done in case the query execution turnaround time is more, so for good user experience a progress bar is added to show the user that the query is been processed.
Interesting articles would be the following ones from MSDN:
-
How to: Host Controls in Windows Forms DataGridView Cells
This tools hosts
Calender
,ComboBox
andTreeview
controls in aComboBox
. -
How to: Wrap a Windows Forms Control with ToolStripControlHost
-
Safe, Simple Multithreading in Windows Forms
// // Hosting the Controls in the Grid View // public class CalendarColumn : DataGridViewColumn { } public class CalendarCell : DataGridViewTextBoxCell { } class CalendarEditingControl : DateTimePicker, IDataGridViewEditingControl { } // // Asynchronous Programming to Update the UI // class ShowProgressDelegate : MulticastDelegate { public void Invoke(int digits); public void BeginInvoke(string txtDisplay, AsyncCallback callback, object asyncState); public void EndInvoke(IAsyncResult result); } public class ToolStripControlHost : ToolStripItem
Points of Interest
While developing the tool, it helped me in learning the various properties of control, hosting those controls in the grid view and do asynchronous programming.
History
- 10th October, 2008: Initial release
This is just a fast track beginning, the future release would include all the fixes and an additional feature to group the clause.