.NET Platform has provided a lot of extra advantages to its developers compared to other platforms. It provides a rich set of tools, libraries, etc., that makes the work of developers a lot easier. One of those features is to help developers create a desktop form-based application very easily by just following a couple of steps without writing a single line of c# code or even a single query. This is very helpful for the inventory-based application for manipulating item information. I will provide step-by-step instructions for creating a simple database-driven Windows application that contains one record at a time and allows the user to traverse through all of them via a navigation system, including code examples. Here I am assuming that you have a little familiarity with visual studio, c# and Microsoft SQL Server.
Let’s Develop A Database Driven Windows Application:
- We will first have to create a project from File->New->Project option. Select Windows Forms Application(VS2008+)/Windows Application(VS 2005).
- From Data->Add New Data source, make a new connection to your desired SQL server database.
- Again, from Data->View Data Source, browse your database. Now, go to your specific table. Drag the specific columns that you want to be shown on the application’s user interface form. Remember here, Visual Studio, by default, sets a proper control that can be associated with the table column; for type ‘varchar’ or ‘text,’ a text box control will be associated. For type ‘bit’, a check box will be associated, etc. You can always change it from your server explorer window using the drop-down that is just right before the column.
- Now, from the View->Toolbox option, select the ‘Data’ category and drag a “bindingNavigator” object to the form. You will see this includes next/previous/add/delete, etc. options to do the operations on database records. (Actually, you will not have to do this. Also, this should be automatically imported while adding the fields to the form)
- Now, you will notice that several objects, such as dataset, table adapter, binding source, binding navigator, etc., have been created in the design tray from the design view. Select the binding navigator object, right-click, and view properties. Please set the ‘BindingSource’ property to your binding source object.
We are done!
Build your application and run it. You will see the records of your database table and be able to navigate through each record using the default buttons.
Yahooooo! We have done the basic implementation without even a single line of code! It’s amazing, isn’t it? Well we will need a bit for more functionality. Keep reading. This drag-drop facility of .NET/visual studio has made our lives easier and have relived us from writing boring same code again and again.
Form Validation and Update Database:
Now, Notice That if you click add, it will give you an empty form to fill out; you can also edit the filed data. However, there is no save button. This is the section where we are going into real coding, as right before now, we didn’t have to write a single line of code at all.
Now, simply add a button, either in the navigator toolbox or anywhere in the form, that suits you. It doesn’t matter where. Go to the button’s click event.
this.Validate();
this.myBindingSource.EndEdit();
myTableAdapter.Update(myDataSet);
Code language: CSS (css)
This will work out for all kinds of events, such as delete, add or update. Let’s know what these sample codes do. (This step also may not require at all, as I experienced while working on Visual Studio 2010, just for reference if you need to)
this.Validate() validates the value of the controls that are losing focus if automatic validation is turned on. “this.myBindingSource.EndEdit()”, sends the changes to the data source(not the database yet), which is stored on volatile memory. myTableAdapter.Update(myDataSet) is the method responsible for sending changes to the database. Here, you can update a whole dataset, only a table, or even only one or a couple of rows; it has several overloaded methods for each type.
For Practice, I have uploaded a sample project done in Visual Studio 2005 so that you can open it and upgrade it to your version(2005/2008/2010).
Don’t like to work with winform style? Looking for more advanced desktop UI? What about learning WPF application development? It will give you a nicer layout maker in XML format. Also, if you also work on web applications, then working with WPF will seem to be more familiar to you as because of its xml coded design and stylesheet applying strategy. Give it a try!
I hope this simple tutorial on database Windows application development with C# will help you in the way to create a large-scale project with reduced development time; many developers still use manual ways by drag-drop form controls, then using their buttons to save/insert, delete with their implementation, where they often make several mistakes and resulting in a more time spent for bug fixing etc. There are also a lot of other features on visual studio/.NET, which I will try to describe in this blog from time to time. Happy coding 🙂
Akshay Darekar says
OK, I am learning on my own…
Hey this allows us to add data to the database, but my question is how to retrieve the data from a database?
lets say, you select roll no from ID (can we add drop-down here?), and this pops his name in ‘name’ field… How do you do that?
I have been able to update my database using this work though…
Rana says
Hi,
Here I showed a very simple way to build a form app. You can customize it in whichever way you want. In your case, you sure can add a combo box, then bind it with list of rolls, retrieved from db. On the combo box’s event properties, add event handler on ‘seletectedindexcommited’ event. And then retrieve the coresponding row. However, you will need to get help of some coding here, for sure , 🙂
database is not secure…..
tell me any secure database …….
hi, the coding was more useful its working correctly
“Update requires a valid DeleteCommand when passed DataRow collection with deleted rows.”
this error i got when i clicked X button in binding navigator… pls help
Hi Harini, sorry for delayed reply. I think, you haven’t set any primary key in your database table. Please do so and your issue should get resolved. Thanks.
Hello,
I was thinking of making a (portable) database driven desktop application that can simply be thrown on a usb flash drive and run anywhere.
Question 1: Is this possible with the microsoft.net platform or will I have to resort to other programming languages such as java?
Question 2: Can your data source (database) be a ms access database?
Thanks
really nice
how do you navigate C# SQL database wit NEXT and PREVIOUS buttons in webApplications asp.net