目录

一、ExecuteNonQuery 方法是什么?

语法

实例:

返回的结果是什么?

二、实战应用

三、实战演练

①、数据表class_Info

②、代码展示

③、执行结果

四、 SqlCommand 类的一些常见方法


一、ExecuteNonQuery 方法是什么?

SqlCommand.ExecuteNonQuery 是 .NET Framework 的 SqlCommand 类的一个方法。这个方法用于执行 SQL 命令并返回影响的行数,但不返回结果集。这对于执行 INSERT、UPDATE 或 DELETE 语句非常有用,因为这些语句通常只关心对数据库的更改,而不是查询结果。

语法

public int ExecuteNonQuery();

实例:

using System.Data.SqlClient;

// 创建 SqlConnection 对象
string connectionString = "Data Source=your_server;Initial Catalog=your_database;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);

// 打开 SqlConnection
connection.Open();

// 创建 SqlCommand 对象
string sql = "UPDATE your_table SET your_column = 'new value' WHERE some_condition";
SqlCommand command = new SqlCommand(sql, connection);

// 执行 SqlCommand 并获取影响的行数
int rowsAffected = command.ExecuteNonQuery();

// 关闭 SqlConnection
connection.Close();

注意:要始终确保在执行 SQL 命令后关闭数据库连接

返回的结果是什么?

第一种情况:用于update、insert、delete语句中返回该受影响的行数

第二种情况:用于select语句返回值为-1

二、实战应用

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    using (SqlCommand command = new SqlCommand("INSERT INTO Customers (Name, Age) VALUES ('John', 25)", connection))
    {
        int rowsAffected = command.ExecuteNonQuery();
        Console.WriteLine("Rows affected: " + rowsAffected);
    }
}

在上面的示例中,我们首先创建了一个 SqlConnection 对象来建立与数据库的连接。然后,我们创建一个 SqlCommand 对象,并将要执行的 SQL 语句传递给它。然后,我们调用 ExecuteNonQuery 方法来执行 SQL 语句,并将返回的受影响的行数存储在一个变量中。最后,我们打印出受影响的行数。

注意事项:

  • 在使用 ExecuteNonQuery 方法之前,必须先打开连接。

  • ExecuteNonQuery 方法只能执行不返回结果的 SQL 语句,如果需要返回结果集,应该使用 ExecuteReader 或 ExecuteScalar 方法。

  • ExecuteNonQuery 方法通常用于执行 INSERT、UPDATE、DELETE 等操作,因为这些操作不会返回任何结果。

三、实战演练

①、数据表class_Info

                                                                            

②、代码展示

//删除信息
public int DeleteClass(int classNo)     
{            
    //实例化连接对象,并且连接数据源
   using (SqlConnection conn = new SqlConnection(DataSourceDAL.Connstring))
   {
       SqlCommand cmd = conn.CreateCommand();                                 //实例化一个执行对象cmd
       cmd.CommandText = @"delete from class_Info where class_No = @classNo"; //要执行的SQL语句:删除class_Info表中指定class_No=3的记录
       cmd.CommandType = CommandType.Text;                                    //执行的SQL语句是文本类型的

       cmd.Parameters.Add(new SqlParameter("@classNo", classNo));              //注入值

        conn.Open();                                                           //打开连接
       int result = cmd.ExecuteNonQuery();                                     //定义一个int类型变量result,用于接收受影响的行数
       return result;                                                          //返回受影响的行数
   }            
}

③、执行结果

如下图,通过断点逐行调试,当走到ExecuteNonQuery()方法时,它的返回的值为1,也就是说明表中有一条数据被修改了

                                                              

那大家有没有觉得这个很眼熟呢?其实和我们在【Microsoft SQL Server ManageMen Studio】中执行的是一样的效果,如下图是在软件中执行此操作的结果,ExecuteNonQuery()的工作就是返回那句话。

                                                        

四、 SqlCommand 类的一些常见方法

C#帮助我们提供了灵活性和可扩展性,以执行各种类型的 SQL 命令和操作数据库,下面列表为SqlCommand 类还包含其他方法和属性。

  1. ExecuteNonQuery(): 执行 SQL 命令并返回影响的行数。这个方法适用于 INSERT、UPDATE 和 DELETE 语句。

  2. ExecuteReader(): 执行 SELECT 语句并返回一个 SqlDataReader 对象,用于读取查询结果集中的数据。

  3. ExecuteScalar(): 执行 SELECT 语句并返回单个标量值(例如 COUNT 查询的结果)。

  4. ExecuteXmlReader(): 执行存储过程并返回一个 SqlXml 对象,该对象提供了读取结果 XML 数据的方法。

  5. Cancel(): 取消正在执行的命令。

  6. Parameters.Add(): 添加参数到命令的参数集合中。

  7. Parameters.AddWithValue(): 添加带有指定名称、数据类型和值的参数到命令的参数集合中。

  8. Parameters.Remove(): 从命令的参数集合中移除指定的参数。

  9. Parameters.Clear(): 清空命令的参数集合。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐