【学习笔记】ADO.Net中SqlConnection、Sqlcommand的应用

引言

对于.NET的其中一个数据提供者:SQL Server .NET提供者有 Connection 对象、 Command 对 象、 DataAdapter 对象及 DataReader 对象。

接下来介绍ADO.Net中SqlConnection、Sqlcommand的应用

(一)SqlConnection

1.介绍

使用sqlconnection 类可以连接到SQL  Server数据库,有一下两种方法:

(1) 通过VS创建SqlConnection对象 

A.在任意选项卡上单击鼠标右键,在弹出的快捷菜单中, 选择“选择项”命令,手动加入Connection对象。

B.等待一段时间后,出现 “选择工具箱项” 对话框,从中找到SqlConnection对象,勾选后单击“确定”按钮 。

C.这样就可以在工具箱中看到SqlConnection控件 。

D.在窗体设计器中,拖曳一个SqlConnection控件 。

E.在“属性”窗口中,把对象的Name属性值改为cnSql,并选择属性ConnectionString 。

(2)通过编程创建SqlConnection对象

A.首先, 利用 SqlConnection 类的构造函数 SqlConnection()创建一个未初始化的 SqlConnection 对 象 , 再 用 一 个 连 接 字 符 串 初 始 化 该 对 象 :

 SqlConnection cnSql=newSqlConnection();

//需要注意的是在使用 cnSql 之前必须再设置 ConnectionString属性的值

cnSql.ConnectionString="server=(local);database=EMR1;uid=XuTingTing;pwd=123456abc;"

//要访问数据源,必须先建立连接。这个连接对象里描述了数据库服务器类型、数据库的名字、用户名、密码等参数。

 

B. 利用 SqlConnection 类的构造函数 SqlConnection(stringconnectionString)创 建一个 SqlConnection 对象, 并为该构造函数的参数指定一个连接字符串。

 SqlConnection cnSql=newSqlConnection("server=(local);database=EMR1;uid=XuTingTing;pwd=12346abc;");

 

2.SqlConnection对象的主要属性:ConnectionString属性

参数

描述

Integrated Secunity

如果此参数为false,则必须指定其中的Password和UserID,则数据源使用当前身份验证Microsoft windows账户凭证。其可识别值为true、false、no以及sspi(等价于true)。

ConnectionString

获取或者设置用于打开数据库的连接字符串。

ConnectionTimeout

在试图建立连接的过程中, 获取在终止操 作并产生错误之前等待的时间, 也就是超时时间。

DataBase

取得或设置在数据库服务器上要打开的数据库名。

DataSource

数据库所处的位置包括它的文件

PassWord

如果integrated secunity设置为false,则该参数为要使用的数据源登录账户密码。

State

取得目前连接的状态。

UserID

如果integrated secunity设置为false,则该参数为要使用的数据源登录账户密码。

 

3.SqlConnection对象的方法:

Open方法

创建一个 SqlConnection 对象并指定一个连接字符串并没有打开一个指向数据库的物理连接, 需要调用对象的 Open 方法来打开连接。用 Open 方法打开的连接。

Close方法

Close 方法来关闭 SqlConnection 对象, 不关闭打开的连接会影 响系统性能和对应用程序的操作, 所以最好关闭连接。

例:测试连接状态

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection sqlConnection = new SqlConnection();//创建sqlConnection对象
            sqlConnection.ConnectionString = "Server=(local);DataBase=EMR1;Integrated Security=sspi";
            sqlConnection.Open();//打开数据库
            MessageBox.Show(sqlConnection.State.ToString());
            sqlConnection.Close();//关闭数据库
            MessageBox.Show(sqlConnection.State.ToString());
        }
    }
}

 

 

 

(二)SqlCommand

1.介绍

 SqlCommand 对象用于执行具体的SQL语句,如增删改查。

2. 创建SqlCommand对象有以下两种方法:

(1)通过VS创建SqlCommand对象

与上述使用VS创建SqlConnection对象类似。

(2)通过编程方式创建SqlCommand对象

A.使用无参数的构造函数来创建Connection对象的新实例,然后设置适当的属性值 。

SqlCommand com=new SqlCommand( );

com.Connection=cn;

 

B.使用带参数的构造函数, 并指定查询字符串和Connection对象。

SqlCommand com=new SqlCommand(命令文本,cn);

 

C.调用Connection对象的CreateCommand()方法 。

SqlCommand com=cn.CreateCommand( ); 

3.SqlConnection对象的主要属性

 

属性

描述

CommandText

要对数据源执行的SQL语句或存储过程

CommandTimeout

在终止执行命令的尝试并生成错误提示信息之前等待时间(单位:s)

CommandType

指示如何解释CommandText属性,默认值是Text

Connection

Command对象所要使用的Connection

Parameters

Parameters集合

Transcation

执行命令所在事务

UpdataRowSource

确定当Command对象被DataAdapter或TableAdapter的Update()方法使用时,其结果如何应用于DataRow

补充:

其中CommandType属性用来指示如何解释CommandText属性的内容 。其取值及描述如下表所示。

属性值

描述

StoredProcedure

指示CommandText属性所包含的是要执行的存储过程的名称

TableDirect

指示CommandText属性所包含的是要访问的一个表的名称,从此表中将取出所有的列和行

Text

指示CommandText属性包含的是要执行的SQL命令(此为默认值)

 

4.使用SqlCommand对象来执行 SQL 语句(SqlCommand的主要方法)

方法

说明

ExecuteScalar

执行查询,并返回查询结果中的第一行第一列的值,类型是object

ExecuteNonQuery

执行查询,并返回查询结果中的第一行第一列的值,类型是object

ExecuteReader

执行查询命令,返回SqlDataReader对象

5.区别

DataReader对象:根据Command对象的查询结果, 按顺序获取单行数据。

6.SqlCommand对象的使用步骤如下

(1)创建SqlConnection对象

(2)定义SQL语句

 把所要执行的SQL语句赋给字符串。

(3)创建SqlCommand对象

(4)调用SqlCommand对象的某个方法,执行SQL语句。

 注意在调用SqlCommand 对象的某个方法之前,一定要打开数据库连接,否则程序会出错

例:用户登录

 using System;
 using System.Windows.Forms;
 using System.Data.SqlClient;
 using System.Diagnostics;
 using System.Configuration;

 namespace WindowsFormsApplication1
{
     public partial class Form1 : Form
     {
         public Form1()
         {
             InitializeComponent();
         }
 
         private void btn_Connect_Click(object sender, EventArgs e)
         {
             SqlConnection sqlConnection = new SqlConnection();//创建sqlConnection对象
             sqlConnection.ConnectionString = "Server=(local);DataBase=EMR1;Integrated Security=sspi";//连接数据库
             SqlCommand sqlCommand = new SqlCommand();//创建sqlCommand对象
             sqlCommand.Connection = sqlConnection;
             sqlCommand.CommandText = string.Format("SELECT COUNT(1) FROM Student WHERE No={'0'} AND Password={'1'},this.txb_UserNo.Text.Trim(),this.txb_Password.Text.Trim()");//调用CommandText方法执行sql语句
             sqlConnection.Open();//打开数据库
             int rowCount = (int)sqlCommand.ExecuteScalar();//定义一个rowCount值返回sql的执行结果
             sqlConnection.Close();//关闭数据库
             if (rowCount == 1)
             {
                 MessageBox.Show("登陆成功");
             }
             else
             {
                 MessageBox.Show("用户账号/密码错误,请重新输入");
                 this.txb_Password.Focus();
 
             }
         }
     }
 }

转载于:https://www.cnblogs.com/xtt-0928/p/10490874.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值