C# 执行 SQL 语句(完)

9ce7299d448f149c67da988e1cffd971.png

Command 对象需要取得将要执行的 SQL 语句,通过调用该类提供的多种方法,向数据库提交 SQL语句。下面详细介绍 SqlCommand 对象中的几种执行 SQL 语句的方法。

01  ExecuteNonQuery 方法

执行 SQL 语句,并返回受影响的行数,在使用 SqlCommand 向数据库发送增、删、改命令时,通常使用 ExecuteNonQuery 方法执行发送的 SQL 语句。

语法如下: 

public override int ExecuteNonQuery() 

返回值:受影响的行数。

例2

创建一个 Windows 应用程序,在三八妇女节那天,公司决定为每位女员工颁发奖金50元。这样,就需要向数据发送更新命令,将数据库中所有女员工的奖金数额加上 50,所以要使用 ExecuteNonQuery 方法执行发送的 SQL 语句,并获取受影响的行数。

代码如下:

SqlConnection conn;                                        //声明一个 SqlConnection 变量
private void button1_Click(object sender, EventArgs e)
{        
     //实例化 SqlConnection 变量 conn
     conn=new SqlConnection("server=.;database=db_15;uid=sa;pwd=");
     conn.Open();                                          //打开连接
SqlCommand cmd = new SqlCommand();                         //创建一个 SqlCommand 对象
//设置 Connection 属性,指定其使用 conn 连接数据库
cmd.Connection= conn;
//设置 CommandText 属性,以及其执行的 SQL 语句
cmd.CommandText="update tb_command set 奖金=50 where 性别='女'";
//设置 CommandType 属性为 Text,使其只执行 SQL 语句文本形式 
cmd.CommandType = CommandType.Text;
//使用 ExecuteNonQuery 方法执行 SQL 语句       
int i = Convert.Tolnt32(cmd.ExecuteNonQuery());
label2.Text="共有”+i.ToString()+"名女员工获得奖金";
}

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

12bf87eeb6c5b488e4905bdab99e563a.png

              图2  对数据表执行更新操作

  说明

如果想要执行存储过程,应将 CommandType 属性设置为 StoredProcedure,将CommandText 属性设置为存储过程的名称。

02  ExecuteReader 方法

执行 SQL 语句,并生成一个包含数据的 SqlDataReader 对象的实例。

语法如下:

public SqlDataReader ExecuteReader()

返回值:一个 SqlDataReader 对象。

例3

创建一个 Windows 应用程序,根据 select * from tb_command 语句进行查询,调用 ExecuteReader 方法返回一个包含 tb_command 表中所有数据的 SqlDataReader 对象。

代码如下:

SqlConnection conn;                                        //声明一个 SqlConnection 对象 
private void button1_Click(object sender, EventArgs e)
{       
     //实例化 SqlConnection 变量 conn
     conn=new SqlConnection("server=.;database=db_15;uid=sa;pwd=");      
     conn.Open();                                          //打开连接      
     SqlCommand cmd = new SqlCommand();                    //创建一个 SqlCommand 对象   
     //设置 Connection 属性,指定其使用 conn 连接数据库        
     cmd.Connecton = conn;      
     //设置 CommandText 属性,以及其执行的 SQL 语句      
     cmd.CommandText ="select* from tb_command";    
     //设置 CommandType 属性为 Text,使其只执行 SQL 语句文本形式 
     cmd.CommandType = CommandType.Text;  
     //使用ExecuteReader 方法实例化一个 SqlDataReader 对象    
     SqlDataReader sdr = cmd.ExecuteReader();  
     while(sdr.Read())                                     //调用 while 语句,读取 SqIDataReader     
     {   
         listView1.Items.Add(sdr[1].ToString());           //将内容添加到 listView1 控件中  
      }    
      conn.Dispose();                                      //释放连接     
      button1.Enabled = false;                             //禁用按钮 
      }

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

2dd3a4eceed9a0fbc4d7b4340bd90ad9.png

                   图3  获取员工姓名

03  ExecuteScalar 方法

执行 SQL 语句,返回结果集中的第一行的第一列。

语法如下:

public override Object ExecuteScalar()

返回值:结果集中第一行的第一列或空引用(如果结果集为空)。

在例1 中,已经使用 ExecuteScalar 方法获取指定数据表中的数据数量,此处不再赘述。大家可参见例1 中的代码,理解 ExecuteScalar 方法的使用。ExecuteScalar 方法通常与聚合函数一起使用, 常见的聚合函数如表1 所示。 

d0a71a98f685ad04343187722f1cfe67.png

             表1  常见的聚合函数及说明

往期推荐

d0379d05da1f9ed4c66813298334d5d6.png

Love life,love yourself

关注小编不迷路呦~

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

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

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中使用SQL语句建表可以通过ADO.NET来实现。ADO.NET是C#中用于访问数据库的一种技术,它提供了一组类和方法来连接、查询和操作数据库。 下面是一个使用SQL语句C#中建表的示例: ```csharp using System; using System.Data.SqlClient; namespace CreateTableExample { class Program { static void Main(string[] args) { string connectionString = "Data Source=(local);Initial Catalog=YourDatabase;Integrated Security=True"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); string createTableQuery = "CREATE TABLE YourTable (Id INT PRIMARY KEY, Name VARCHAR(50), Age INT)"; using (SqlCommand command = new SqlCommand(createTableQuery, connection)) { command.ExecuteNonQuery(); Console.WriteLine("Table created successfully."); } } } } } ``` 在上面的示例中,我们首先创建了一个`SqlConnection`对象,用于连接到数据库。`connectionString`变量指定了数据库的连接信息,包括数据源、数据库名称和身份验证方式。 然后,我们使用`SqlConnection`对象打开数据库连接。接下来,我们定义了一个SQL语句`createTableQuery`,用于创建表。在这个示例中,我们创建了一个名为`YourTable`的表,包含`Id`、`Name`和`Age`三个列。 然后,我们创建了一个`SqlCommand`对象,并将SQL语句数据库连接传递给它。使用`ExecuteNonQuery`方法执行SQL语句,该方法用于执行不返回结果集的SQL语句,例如创建表、插入数据等操作。 最后,我们关闭了数据库连接,并输出了一条成功创建表的消息。 请注意,上述示例中的`connectionString`变量需要根据你的实际数据库连接信息进行修改,包括数据源、数据库名称和身份验证方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值