C# 执行 SQL 语句

01 Command 对象概述

b7e2e1e96c1215762dbd7393d201f162.png

Command 对象是一个数据命令对象,主要功能是向数据库发送查询、更新、删除、修改操作的 SQL 语句。Command 对象主要有以下几种方式。

8e07e326cc40ab5605837bc7367fed37.png  SqlCommand:用于向SQL Server 数据库发送 SQL 语句,位于 System.Data.SqlClient 命名空间。

05c4da580dbb0b9bbdc6d17f4b3332fc.png   OleDbCommand:用于向使用 OLEDB 公开的数据库发送 SQL 语句,位于 System.Data.OleDb 命名空间。例如,Access 数据库和 MySQL数据库都是 OLEDB 公开的数据库。

86c18b89f703699554d62b51fa76b372.png  OdbcCommand:用于向 ODBC 公开的数据库发送 SQL 语句,位于 System.Data.Odbc 命名空间。有些数据库如果没有提供相应的连接程序,则可以配置好 ODBC 连接后,使用 OdbcCommand。

825e75507bf1d711dafd2b64e99a4c76.png  OracleCommand:用于向 Oracle 数据库发送 SQL 语句,位于 System.Data.OracleClient 命名空间。

 注意

在使用 OracleCommand向 Oracle 数据库发送SQL语句时,要引入 System.Data.OracleClient 命名空间。但是默认情况下没有该命名空间,此时,需要将程序集 System.Data.OracleClient 引入到项目中。引入程序集的方法是在项目名称上单击鼠林右键,在弹出的快捷莱单中选择“添加引用”命令,打开“添加引用”对话枢,在该对话框中选择 System.Data.OracleClient 程序集,单去“确定”按但,即可将其悉加到项目中。

02  设置数据源类型

Command 对象有 3 个重要的属性,分别是 Connection、CommandText 和 CommandType。Connection属性用于设置SqlCommand 使用的 SqlConnection。CommandText 属性用于设置要对数据源执行的SQL语句或存储过程。CommandType 属性用于设置指定 CommandText 的类型。ComnmandType 属性的值是 CommandType 枚举值,CommandType 枚举有 3 个枚举成员,分别介绍如下。

22ace3355ca8a1d99983a034c7fea682.png   StoredProcedure:存储过程的名称。

dda607e4d83ee356d2854ede4b3e9a2e.png   TableDirect:表的名称。

3441d1ba7f336e20e8e320f67678928d.png   Text:SQL 文本命令。

如果要设置数据源的类型,则可以通过设置 CommandType 属性来实现。下面通过实例演示如何使用 Command 对象的这3个属性,以及如何设置数据源类型。

例1

创建一个 Windows 应用程序,向窗体中添加一个 Button 控件、一个 TextBox 控件和一个 Label 控件,分别用于执行 SQL语句、输入要查询的数据表名称以及显示数据表中数据的数量。在Button 控件的 Click 事件中设置 Command 对象的 Connection 属性、CommandText 属性和 CommandType属性。

代码如下:

SqlConnection conn;                                       //声明一个 SqlConnection 变量 
private void Form1_Load(object sender,EventArgs e) 
{
     //实例化 SqlConnection变量conn 
     conn = new SqlConnection("server=.;database=db_15;uid=sa;pwd=");
     conn.Open();                                        //打开连接
}
private void button1_Cick(object sender,EventArgs e) 
{
     try                                                 //调用 try...catch 语句
{
          //判断是否打开连接或者文本框不为空
          if(conn.State == ConnectionState.Open || textBox1.Text !="")
          {
               SglCommand cmd = new SqlCommand();        //创建一个 SqlCommand 对象 
               cmd.Connection = conn;                    //设置 Connection 属性 
               //设置 CommandText 属性,以及 SQL 语句
               cmd.CommandText ="select count(*) from"+ textBox1.Text.Trim();
               //设置 CommandType 属性为 Text,使其只执行 SQL 语句文本形式 
               cmd.CommandType= CommandType.Text;
               //使用 ExecuteScalar 方法获取指定数据表中的数据数量 
               int i= Convert.ToInt32(cmd.ExecuteScalar());
               label2.Text="数据表中共有:"+i.ToString()+"条数据";
           }
      }
      catch(Exception ex)
      {
          MessageBox.Show(ex.Message);
      }
}

程序的运行结果如图1 所示。

e9941a7979d53418ce8c76392ad3bb49.png

                        图1  SqlCommand 对象执行查询语句

往期推荐

  1.  C#  分部类                   

  2.  C#  类型转换

  3.  C# 迭代器

  4.  C# 线程的基本操作(一)

  5.  C# 线程的基本操作(二)

  6.  C# 线程的基本操作(三)

a3786bfba65373019b8bcabe366146e5.png

Love life,love yourself

关注小编不迷路呦~

-----------------------------------

需要进技术群交流的,请添加小编zls20210502

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值