ADO.NET中有关SqlConnection与Sqlcommand 的介绍与应用

ADO.NET中有关SqlConnection与Sqlcommand 的介绍与应用sql

思惟导图:数据库

 

ADO.NET提供5个主要的类的对象来实现数据的链接访问和离线访问。这5个类分别是ConnectionCommandDataReaderDataAdapterDataSet服务器

SqlConnection 的介绍与应用网络

一、介绍与做用函数

SqlConnectionADO.NET中的链接类。ui

 使用sqlconnection 类能够链接到SQL  Server数据库。this

二、主要属性以及方法spa

   主要属性:ConnectionString(链接字符串)orm

   其它属性简介:对象

属性

说明

ClientConnectionId

最近链接尝试链接的 ID,不管该尝试是成功仍是失败。

ConnectionTimeout

获取在尝试创建链接时终止尝试并生成错误以前所等待的时间。 (重写 DbConnectionConnectionTimeout。)

Container

获取 IContainer,它包含 Component。 (继承自 Component。)

Credential

获取或设置此链接的 SqlCredential 对象。

Database

获取当前数据库或链接打开后要使用的数据库的名称。 (重写 DbConnectionDatabase。)

DataSource

获取要链接的 SQL Server 实例的名称。 (重写 DbConnectionDataSource。)

FireInfoMessageEventOnUserErrors

获取或设置 FireInfoMessageEventOnUserErrors 属性。

PacketSize

用来与 SQL Server 的实例进行通讯的网络数据包的大小,以字节为单位。

ServerVersion

获取包含客户端链接的 SQL Server 实例的版本的字符串。 (重写 DbConnectionServerVersion。)

Site

获取或设置 Component ISite。 (继承自 Component。)

State

指示最近在链接上执行网络操做时, 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种状况:

若是CommandType属性取值为Text,则CommandText属性指出SQL语句的内容

若是CommandType属性取值为StoredProcedure,则CommandText属性指出存储过程的名称

若是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();

            }

        }

}

相关文章
相关标签/搜索