SqlCommand.ExecuteNonQuery 方法
一、ExecuteNonQuery 方法是什么?SqlCommand的一个类,用于包含UPDATE、INSERT、DELETE的Transact-sql 语句中来修改数据库中的数据,并返回结果。二、返回的结果是什么?第一种情况:用于update、insert、delete语句中返回该受影响的行数第二种情况:用于select语句返回值为-1三、实战演练①、数据表class_Info...
目录
一、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
类还包含其他方法和属性。
-
ExecuteNonQuery()
: 执行 SQL 命令并返回影响的行数。这个方法适用于 INSERT、UPDATE 和 DELETE 语句。 -
ExecuteReader()
: 执行 SELECT 语句并返回一个SqlDataReader
对象,用于读取查询结果集中的数据。 -
ExecuteScalar()
: 执行 SELECT 语句并返回单个标量值(例如 COUNT 查询的结果)。 -
ExecuteXmlReader()
: 执行存储过程并返回一个SqlXml
对象,该对象提供了读取结果 XML 数据的方法。 -
Cancel()
: 取消正在执行的命令。 -
Parameters.Add()
: 添加参数到命令的参数集合中。 -
Parameters.AddWithValue()
: 添加带有指定名称、数据类型和值的参数到命令的参数集合中。 -
Parameters.Remove()
: 从命令的参数集合中移除指定的参数。 -
Parameters.Clear()
: 清空命令的参数集合。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)