ADO.NET中有关SqlConnection与Sqlcommand 的介绍与应用sql
思惟导图:数据库
ADO.NET提供5个主要的类的对象来实现数据的链接访问和离线访问。这5个类分别是Connection、Command、DataReader、DataAdapter和DataSet。服务器
SqlConnection 的介绍与应用网络
一、介绍与做用函数
SqlConnection是ADO.NET中的链接类。ui
使用sqlconnection 类能够链接到SQL Server数据库。this
二、主要属性以及方法spa
主要属性:ConnectionString(链接字符串)orm
其它属性简介:对象
属性 |
说明 |
ClientConnectionId |
最近链接尝试链接的 ID,不管该尝试是成功仍是失败。 |
ConnectionTimeout |
获取在尝试创建链接时终止尝试并生成错误以前所等待的时间。 (重写 DbConnectionConnectionTimeout。) |
Credential |
获取或设置此链接的 SqlCredential 对象。 |
获取当前数据库或链接打开后要使用的数据库的名称。 (重写 DbConnectionDatabase。) |
|
DataSource |
获取要链接的 SQL Server 实例的名称。 (重写 DbConnectionDataSource。) |
FireInfoMessageEventOnUserErrors |
获取或设置 FireInfoMessageEventOnUserErrors 属性。 |
PacketSize |
用来与 SQL Server 的实例进行通讯的网络数据包的大小,以字节为单位。 |
ServerVersion |
获取包含客户端链接的 SQL Server 实例的版本的字符串。 (重写 DbConnectionServerVersion。) |
指示最近在链接上执行网络操做时, SqlConnection 的状态。 (重写 DbConnectionState。) |
|
StatisticsEnabled |
若是设置为 true,则对当前链接启用统计信息收集。 |
WorkstationId |
获取标识数据库客户端的一个字符串。 |
方法:Open();(打开数据库) Close();(关闭数据库)
构造函数:
名称 |
说明 |
SqlConnection |
初始化 SqlConnection 类的新实例。 |
SqlConnection(String) |
若是给定包含链接字符串的字符串,则初始化 SqlConnection 类的新实例。 |
SqlConnection(String, SqlCredential) |
初始化给定链接字符串的 SqlConnection 类的新实例,而不使用包含用户识别号和密码的 Integrated Security = true 和 SqlCredential 对象。 |
三、建立SqlConnection对象:
可使用定义好的链接字符串建立SqlConnection对象。代码以下
SqlConnection connection=new SqlConnection(connectionString);
要访问数据源,必须先创建链接。这个链接对象里描述了数据库服务器类型、数据库的名字、用户名、密码等参数。
SqlConnection conn=new SqlConnection();
conn.ConnectionString=”Data Source=(Local);
Initial Catalog=pubs; uid=sa; pwd=sa;”
调用SqlConnection 对象的Open()与Close() 方法来打开和关闭数据库的代码以下:
打开数据库:connection.Open();
关闭数据库:connection.Close();
SqlCommand的介绍与应用
SqlCommand属于命令类
一、做用:
SqlCommand 对象用于执行具体的SQL语句,如增长、删除、修改、查找。
二、主要属性以及方法
SqlCommand对象的经常使用属性
属 性 |
说 明 |
Connection属性 |
指定Command对象所使用的Connection对象。 |
CommandType属性 |
指定Command对象的类型,有3种选择: 1 Text:表示Command对象用于执行SQL语句。 2 StoredProcedure:表示Command对象用于执行存储过程。 3 TableDirect:表示Command对象用于直接处理某个表。 CommandType属性的默认值为Text。 |
CommandText属性 |
根据CommandType属性的取值来决定CommandText属性的取值,分为3种状况: 1 若是CommandType属性取值为Text,则CommandText属性指出SQL语句的内容。 2 若是CommandType属性取值为StoredProcedure,则CommandText属性指出存储过程的名称。 3 若是CommandType属性取值为TableDirect,则CommandText属性指出表的名称。 CommandText属性的默认值为SQL语句。 |
CommandTimeout属性 |
指定Command对象用于执行命令的最长延迟时间,以秒为单位,若是在指定时间内仍不能开始执行命令,则返回失败信息。 默认值为30秒。 |
Parameters属性 |
指定一个参数集合。 |
SqlCommand对象的重要方法:
方法 |
说明 |
ExecuteScalar |
执行查询,并返回查询结果中的第一行第一列的值,类型是object |
ExecuteNonQuery |
执行SQL语句并返回受影响的行数 |
ExecuteReader |
执行查询命令,返回SqlDataReader对象 |
三、SqlCommand对象的使用步骤以下
(1)建立SqlConnection对象
SqlConnection connection=new SqlConnection(connectionString);
(2)定义SQL语句
把所要执行的SQL语句赋给字符串。
(3)建立SqlCommand对象
SqlCommand command = new SqlCommand();
(4)调用SqlCommand对象的某个方法,执行SQL语句。
注意:在调用SqlCommand 对象的某个方法以前,必定要打开数据库链接,不然程序会出错。
举例以下:
public partial class Form1 : Form
{
//数据库链接字符串
private static string connString = "Data Source=localhost;Initial Catalog=QQ;Integrated Security=true";
//数据库链接对象
public static SqlConnection connection = new SqlConnection(connString);
public Form1()
{
InitializeComponent();
}
//执行SQL语句
private void btnSql_Click(object sender, EventArgs e)
{
try
{
//查询用的 SQL 语句
string selectSql = "select count(*) from Users";
//建立Command对象
SqlCommand command = new SqlCommand();
//指定Command对象所使用的Connection对象
command.Connection = connection;
//指定Command对象用于执行SQL语句
command.CommandType = CommandType.Text;
//指定要执行的SQL语句
command.CommandText = selectSql;
//打开数据库链接
connection.Open();
//执行查询操做,返回单个值
this.txtCount.Text = command.ExecuteScalar().ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//关闭数据库链接
connection.Close();
}
}
//执行存储过程
private void btnStoreProc_Click(object sender, EventArgs e)
{
try
{
//建立Command对象
SqlCommand command = new SqlCommand();
//指定Command对象所使用的Connection对象
command.Connection = connection;
//指定Command对象用于执行存储过程
command.CommandType = CommandType.StoredProcedure;
//指定要执行的存储过程的名称
command.CommandText = "procSelect1";
//打开数据库链接
connection.Open();
//执行查询操做,返回单个值
this.txtCount.Text = command.ExecuteScalar().ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
//关闭数据库链接
connection.Close();
}
}
}