ExecuteNonQuery 在插入时不会引发异常

作者:编程家 分类: sqlserver 时间:2025-09-08

ExecuteNonQuery 在插入时不会引发异常

在使用数据库进行数据操作时,我们经常需要执行插入操作来将新的数据存储到数据库中。而在执行插入操作时,我们可能会使用到 ExecuteNonQuery 方法来执行 SQL 语句。这个方法通常用于执行 INSERT、UPDATE、DELETE 等操作,并返回受影响的行数。

然而,在使用 ExecuteNonQuery 方法执行插入操作时,我们可能会担心是否会发生异常。因为在插入数据时,可能会存在一些约束条件,比如唯一性约束、非空约束等,如果插入的数据违反了这些约束条件,数据库往往会抛出异常。

幸运的是,ExecuteNonQuery 方法在插入操作时不会引发异常。相反,它会返回一个整数值,表示受影响的行数。如果返回的值大于 0,则表示插入操作成功执行;如果返回的值等于 0,则表示没有插入任何数据。

案例代码:

假设我们有一个名为 Customers 的表,其中包含 id、name 和 email 字段。我们希望向该表中插入一条新的客户信息。

首先,我们需要创建一个 SqlConnection 对象,用于连接到数据库。然后,我们可以使用 SqlCommand 对象来执行插入操作,并使用 ExecuteNonQuery 方法来执行 SQL 语句。

下面是一个示例代码:

csharp

using System;

using System.Data.SqlClient;

class Program

{

static void Main()

{

// 连接字符串

string connectionString = "Data Source=(local);Initial Catalog=MyDatabase;Integrated Security=True";

using (SqlConnection connection = new SqlConnection(connectionString))

{

// SQL 插入语句

string sql = "INSERT INTO Customers (name, email) VALUES ('John Doe', 'john.doe@example.com')";

using (SqlCommand command = new SqlCommand(sql, connection))

{

connection.Open();

// 执行插入操作

int rowsAffected = command.ExecuteNonQuery();

if (rowsAffected > 0)

{

Console.WriteLine("插入操作成功!");

}

else

{

Console.WriteLine("没有插入任何数据!");

}

}

}

}

}

在上面的代码中,我们首先定义了一个连接字符串,用于指定数据库的连接信息。然后,我们创建了一个 SqlConnection 对象,并传入连接字符串来建立与数据库的连接。

接下来,我们定义了一个 SQL 插入语句,并创建了一个 SqlCommand 对象。在创建 SqlCommand 对象时,我们传入 SQL 语句和 SqlConnection 对象,以便让 SqlCommand 对象知道要在哪个数据库上执行 SQL 语句。

然后,我们打开数据库连接,并调用 SqlCommand 对象的 ExecuteNonQuery 方法来执行插入操作。最后,我们根据返回的受影响行数判断插入操作是否成功,并输出相应的提示信息。

通过以上案例代码,我们可以清楚地看到,在使用 ExecuteNonQuery 方法执行插入操作时,并不会引发异常。相反,我们可以通过返回的受影响行数来判断插入操作是否成功执行。这使得我们在进行数据插入时更加方便和安全。