本文概述
- SqlConnection签名
- SqlConnection示例
即使连接超出范围,连接也不会明确关闭。因此,你必须通过调用Close()方法显式关闭连接。
SqlConnection签名
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
SqlConnection构造函数
建设者 | 描述 |
---|---|
SqlConnection() | 它用于初始化SqlConnection类的新实例。 |
SqlConnection(String)0 | 它用于初始化SqlConnection类的新实例, 并将连接字符串作为参数。 |
SqlConnection(String, SqlCredential) | 它用于初始化带有两个参数的SqlConnection类的新实例。第一个是连接字符串, 第二个是sql凭据。 |
方法 | 描述 |
---|---|
BeginTransaction() | 它用于启动数据库事务。 |
ChangeDatabase(String) | 它用于为打开的SqlConnection更改当前数据库。 |
ChangePassword(String, String) | 它更改连接字符串中指示的用户的SQL Server密码。 |
Close() | 它用于关闭与数据库的连接。 |
CreateCommand() | 它将指定的事务登记为分布式事务。 |
GetSchema() | 它返回此SqlConnection的数据源的架构信息。 |
Open() | 它用于打开数据库连接。 |
ResetStatistics() | 如果启用了统计信息收集, 它将重置所有值。 |
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
}
使用块用于自动关闭连接。我们不需要显式调用close()方法,而是使用代码块在代码退出代码块时隐式地对我们的代码进行调用。
// Program.cs
using System;
using System.Data.SqlClient;
namespace AdoNetConsoleApplication
{
class Program
{
static void Main(string[] args)
{
new Program().Connecting();
}
public void Connecting()
{
using (
// Creating Connection
SqlConnection con = new SqlConnection("data source=.;
database=student;
integrated security=SSPI")
)
{
con.Open();
Console.WriteLine("Connection Established Successfully");
}
}
}
}
输出:
文章图片
如果我们不使用using块,该怎么办。
如果不使用using块创建连接,则必须显式关闭连接。在下面的示例中,我们使用try-block而不是block。
// Program.cs
using System;
using System.Data.SqlClient;
namespace AdoNetConsoleApplication
{
class Program
{
static void Main(string[] args)
{
new Program().Connecting();
}
public void Connecting()
{
SqlConnection con = null;
try
{
// Creating Connection
con = new SqlConnection("data source=.;
database=student;
integrated security=SSPI");
con.Open();
Console.WriteLine("Connection Established Successfully");
}
catch (Exception e)
{
Console.WriteLine("OOPs, something went wrong.\n"+e);
}
finally
{// Closing the connection
con.Close();
}
}
}
}
输出:
文章图片