Professional Documents
Culture Documents
SQL Database in C#
Category: ASP.NET
Introduction
In this article, we will be looking at one flavor of Microsoft's new introduction to the
.NET Framework, LINQ to SQL. LINQ (Language-Integrated Query) comes in a variety
of forms, including LINQ to XML and LINQ to Objects. In this article, we will be
looking at LINQ to SQL in Visual Studio.NET 2008. If you do not have 2008, you can
download the LINQ Preview for VS.NET 2005 direct from Microsoft.
In this article, we will create a LINQ to SQL Class to represent our SQL database, and
will be dealing with LINQ statements instead of working directly with SQL.
• How to connect to and retrieve data from a SQL database using LINQ;
• How to delete data from a SQL database using LINQ;
• How to add data to a SQL database using LINQ.
Please Note:
LINQ is integrated into ASP.NET 3.5 and does not require any additional downloads.
If you are using ASP.NET 2.0, certain extra steps may need to be taken that are not
covered in this article.
Next, open up the Server Explorer on the left (or View > Server Explorer), and right-click
the Tables folder on the database we just added, then click Add New Table.
Now we have our database ready, we will add some sample data. Right-click the table in
the Server Explorer and choose Show Table Data. Now let's add some sample data -
notice we don't need to complete the id column as it is auto-generated:
Now we have our database set up, we can build our LINQ to SQL Class. Right-click on
your project in Solution Explorer, and choose Add New Item. Then from the list, choose
LINQ to SQL Classes. Give it a name if you want, and when you click Ok it may ask you
if you want to place in the App_Code folder. If so, choose Yes.
This is where LINQ creates its class based on our input. We can add our database tables
and stored procedures to this designer and modify the relationships between the data, and
then Visual Studio will create the class or classes based upon the layout.
For this example, we only have one table to work with, so the design is going to be very
simple. From Server Explorer, drag the table onto the main area of the designer. Our table
should be graphically represented like so:
Now we have created our LINQ to SQL Class and linked it to our LinqDataSource, and
enabled Deletions and Inserts. Notice that we only need to specify what we want, and
Visual Studio will do the hard work for us, behind the scenes.
We can use a DataGrid to display the records from the database. We can either drag one
on from the toolbox and use the Smart Tag to assign the datasource, or simply type it in
ourselves:
<asp:DataGrid
ID="DataGrid1" runat="server" DataSourceID="LinqDataSource1"
Width="334px">
</asp:DataGrid>
Now if we right-click our Default.aspx in the Solution Explorer and choose View in
Browser, we will be presented with an input form and a neat table displaying the data
from the database. This is similar to using the SqlDataSource and DataGrid or GridView
controls, but LINQ has so much more to offer and makes it a lot easier for us to
communicate with and manipulate data, as we will see in the rest of this article.
At present, the web application is just displaying data - no real functionality. Let us now
add the functionality to add new records to the database.
Note that our database isn't modified until the SubmitChanges() method is called. This
means we can make multiple changes without even making a call to the database, which
reduces server load and processing time.
In our last line, we call the DataGrid to bind the data source again, so that we can see the
newest data.
We can now move onto deletions. We want to add the ability to delete any record in the
database. We will do this by populating a DropDownList with the names in the database,
and then use a delete button to delete the selected record. We can use the same
DataSource for the DropDown, so the code would look something like this:
<asp:DropDownList
ID="DropDownList1" runat="server" AutoPostBack="True"
DataSourceID="LinqDataSource1" DataTextField="name"
DataValueField="id">
</asp:DropDownList>
<br />
In a similar way to how we coded the addition of new records, we add code to the delete
button. Double click the delete button in design view and then add the following code.
DropDownList1.DataBind();
}
Again, we are using LINQ to interact with and modify the class representing our database
then we submit changes back to the database. Notice that we also bind our DropDown
again, when we're done, to update the datasource. We also need to bind the GridView
here, and also bind the DropDown on the butAdd handler to make sure our datasources
are always up to date.
So our code-behind will look like this:
using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
DataGrid1.DataBind();
DropDownList1.DataBind();
}
DropDownList1.DataBind();
DataGrid1.DataBind();
}
}
And now we can run our web application and be able to view, add and delete records
from the SQL database without writing any SQL statements.
We have learned that we can easily use LINQ to interact with a SQL database, making it
easy for us to add new records to the database as well as deleting records from it.