The SqlConnection class handles database connections. It
initiates a connection to your SQL database. This class is best used in a using
resource acquisition statement. We call Open to query the database with
SqlCommand.
Example
We emphasize the usage of SqlConnection in a
"using" resource acquisition statement. The SqlConnection has a
constructor that requires a string reference pointing to the connection string
character data.
This connection string is often autogenerated for you by
the dialogs in Visual Studio, and sometimes is provided by your hosting company
or department. You must include the SqlConnection code before you can perform a
database query.
Program that uses SqlConnection: C#
using System;
using System.Data.SqlClient;
class Program
{
static void Main ()
{
//
// First access the connection string.
// ... This may be autogenerated in Visual Studio.
//
string connectionString = ConsoleApplication1.Properties.Settings.Default.ConnectionString;
//
// In a using statement, acquire the SqlConnection as a resource.
//
using (SqlConnection con = new SqlConnection(connectionString))
{
//
// Open the SqlConnection.
//
con.Open();
//
// The following code uses an SqlCommand based on the SqlConnection.
//
using (SqlCommand command = new SqlCommand("SELECT TOP 2 * FROM Dogs1", con))
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine("{0} {1} {2}",
reader.GetInt32(0), reader.GetString(1), reader.GetString(2));
}
}
}
}
}
Output
57 Koko Shar Pei
130 Fido Bullmastiff
This program will not work unless you change the
connection string reference to point to a correct one in your environment. To
create a connection string to a database, go to the Visual Studio Data menu and
select Add New Data Source.
Also:The program assumes the name of an SQL table that will not be present in
most databases.
Using statement. The purpose of the using statement
in the C# language is to provide a simpler way to specify when the unmanaged
resource is needed by your program, and when it is no longer needed.
Internally:The language can transform the using statement into a
try-finally statement that calls the Dispose method.
Open method call. The using statement creates a
read-only variable of type SqlConnection. You need to actually call the Open
method on the SqlConnection instance before using it in an actual SqlCommand.
And:The SqlConnection is passed as the parameter to the SqlCommand. In this
way we specify that the SqlCommand "uses" the SqlConnection.
For the example to work correctly, it would need to find the specified SQL table. The specified connection string must be correct. This site contains a more through overview and tutorial of SqlConnection and its supporting constructs.
In the annotated C# language specification, we are advised
to use the “using” statement when creating any object that implements the
interface IDisposable. Even if the interface does nothing, it is safest to
always call it if it exists.
Specification
Note: Many examples of SqlConnection and SqlCommand do not use the using statement reliably, including the one on MSDN.
Summary
We looked at database code. We stressed the proper usage of
the SqlConnection class and the resource acquisition pattern. The SqlConnection
is required for correctly using other SQL objects such as SqlCommand and
SqlDataReader.
No comments:
Post a Comment