ExecuteNonQuery()方法发即:是指执行非查询SQL命令,如:增、删、改等

前些日子作一些数据项目的时候 在ADO.NET 中处理 ExecuteNonQuery()方法时,总是通过判断其返回值是否大于0来判断操作时候成功 。但是实际上并不是这样的,好在处理的数据操作多时 修改, 插入, 删除,否则的话问题就有点打了,都是些基础的知识,但是很重要个人觉得有必要记下来。

ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库,其方法返回值意义:对于 Update,Insert,Delete 语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0,如果数据操作回滚得话返回值为-1,对于这种更新操作 用我们平时所用的是否大于0的判断操作应该没有问题而且比较好,但是对于其他的操作如对数据库结构的操作,如果操作成功时返回的却是-1,这种情况跟我们平时的思维方式有点差距所以应该好好的注意了,例如对数据库共添加一个数据表的Create操作,当创建数据表成功时返回-1,如果操作失败的话(如数据表已经存在)往往会发生异常,所以执行这种操作时最好用try--catch--语句来容错。

例如用ExecuteNonQuery()方法执行create操作



SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=PSDB;Integrated Security=SSPI");

string str = "CREATE TABLE aaa ( " +
"[ID] [int] IDENTITY (1, 1) NOT NULL , " +
"[BasicID] [int] NULL ," +
"[AdoptedName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ," +
"[AdoptedSex] [char] (2) COLLATE Chinese_PRC_CI_AS NULL ," +
"[AdoptBirthday] [smalldatetime] NULL ," +
"[AdoptedType] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ," +
"[ApprTime] [smalldatetime] NULL ," +
"[Remark] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL " +
") ON [PRIMARY] ";

SqlCommand comm = new SqlCommand(str, conn);
int i = 10;
try
{
conn.Open();
i = comm.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}

Response.Write(i.ToString());

如果执行成功的话 返回的值为-1,如果数据表已经存在的话返回异常:数据库中已存在名为 'aaa' 的对象。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要对多张表进行改查,需要使用 C# 中的 ADO.NET 技术与 SQL Server 进行交互。以下是一个简单的示例代码: ```csharp using System; using System.Data.SqlClient; class Program { static void Main(string[] args) { string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // 查询操作 string sqlQuery = "SELECT * FROM Table1 INNER JOIN Table2 ON Table1.Id = Table2.Table1Id"; SqlCommand command = new SqlCommand(sqlQuery, connection); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { // 处理查询结果 Console.WriteLine(reader["Column1"].ToString()); Console.WriteLine(reader["Column2"].ToString()); } reader.Close(); // 插入操作 string sqlInsert = "INSERT INTO Table1 (Column1, Column2) VALUES ('Value1', 'Value2')"; command = new SqlCommand(sqlInsert, connection); int rowsAffected = command.ExecuteNonQuery(); Console.WriteLine(rowsAffected + " rows inserted."); // 更新操作 string sqlUpdate = "UPDATE Table1 SET Column1 = 'NewValue' WHERE Column2 = 'Value2'"; command = new SqlCommand(sqlUpdate, connection); rowsAffected = command.ExecuteNonQuery(); Console.WriteLine(rowsAffected + " rows updated."); // 删除操作 string sqlDelete = "DELETE FROM Table2 WHERE Column1 = 'Value'"; command = new SqlCommand(sqlDelete, connection); rowsAffected = command.ExecuteNonQuery(); Console.WriteLine(rowsAffected + " rows deleted."); } } } ``` 在示例代码中,使用了 `SqlConnection` 类建立与 SQL Server 数据库的连接,并使用 `SqlCommand` 类执行 SQL 命令,包括查询、插入、更新和删除操作。需要根据具体的业务需求,编写对应的 SQL 命令

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值