首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当ExecuteNonQuery通过catch语句将失败的查询记录到日志表中时,如何使其返回-1?

当ExecuteNonQuery通过catch语句将失败的查询记录到日志表中时,可以通过在catch语句中手动设置返回值为-1来实现。在catch语句块中,可以使用一个变量来保存返回值,并将其设置为-1,然后在catch语句块的最后使用return语句将该变量返回。这样,即使ExecuteNonQuery方法本身没有返回-1的功能,通过手动设置返回值,可以达到返回-1的效果。

以下是一个示例代码:

代码语言:csharp
复制
int result = 0;
try
{
    // 执行查询操作
    // ...
    result = ExecuteNonQuery();
}
catch (Exception ex)
{
    // 将失败的查询记录到日志表中
    // ...
    result = -1;
    // 记录日志
    // ...
}
return result;

在上述代码中,通过将result变量初始化为0,并在catch语句块中将其设置为-1,最后通过return语句将result返回。这样,当ExecuteNonQuery方法执行成功时,result的值将是正常的返回值;而当ExecuteNonQuery方法执行失败时,result的值将是-1。

需要注意的是,这只是一种通过手动设置返回值的方式来模拟返回-1的效果,并非ExecuteNonQuery方法本身的功能。具体的返回值还是要根据实际情况和具体的编程语言来确定。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

mysql中有execute_jdbc连接mysql数据库

最近在补基础知识,刚好补到C#中对数据库操作的一些技术,今天学习了ExecuteNonQuery的东西,看自己项目维护项目的代码和网上资料查询,基本上搞懂了ExecuteNonQuery的用法,小小的做个总结...一、首先,来看看ExecuteNonQuery的返回值: 1. 对于Update、insert、Delete语句执行成功是返回值为该命令所影响的行数,如果影响的行数是0,则返回值就是0; 2....对于所有其他类型的语句,返回值为-1; 3. 如果发生回滚,返回值也为-1; 4. 我们一般对于更新操作,通过判断返回值是否大于0,这个是没有问题的。...但是对于其他的操作【如对数据结构的操作(建表等)】如果操作成功返回值却是-1,但是要注意一下啊,例如给数据库添加一个新表,创建成功返回-1,如果操作失败就会发生异常,所有执行这种操作最好用Try,Catch...首先是一个很简单的类,里面提供了如何用command对象通过ExecuteNonQuery方法跟新数据库。

2K10

C#利用IDbCommand实现通用数据库脚本执行程序

关于 ExecuteNonQuery 在.net 应用中,在数据库中执行脚本程序是经常用到的功能,如数据操作(新增、修改、删除等),执行一个存储过程等,实现的核心方法需要执行 Command 对象的ExecuteNonQuery...该方法对数据库连接执行 Transact-SQL 语句并返回受影响的行数。...生成数据集对象需要利用 ADO.NET 中的数据提供者对象包括IDbConnection、IDbCommand、IDbDataParameter等,如何使用这些对象请参考我的文章: 《C#实现 IDbConnection.../ IDbCommand 等相关通用数据接口》 本文将介绍如何通过利用IDbCommand 实现通用数据库脚本执行程序。...5 public int RowsCount=0 属性 当执行脚本命令成功后的影响行数,默认值为0 6 public int ErrorNum=0 属性 当执行脚本命令失败时,返回数据库提供的错误号

10810
  • 数据库之ADO.NET基础知识整理

    六.常用三个方法 增删改:ExecuteNonQuery()  执行对数据库的增删改,返回受影响的行数,适合:insert、delete、update(对于其他语句返回-1) //cmd.该方法,相当于执行了...7.连接池的原理总结 1.第一次打开连接会创建一个连接对象。 2.当这个连接关闭时(调用Close()方法时)会将当前那个连接对象放入池中。...: 当使用using时可以不加try-catch,但是在返回SqlDataReader的方法中没有使用using,所以这时应该增加一个try-catch,防止发生异常后无法关闭连接对象。...通过执行ExecuteReader()方法获取输出参数的时候需要将reader.Close()以后才能获取 第十八天 一:技巧 1.当显示内容为命名空间时,若想显示内容时        重写(override.../将列添加到表中            dt.Columns.Add(dc2);            dt.Rows.Add(1,"haha");//将行添加到表中 4.遍历输出表名,列名,行数据

    1.9K20

    Asp.NetCore Web开发之ADO.Net

    command.ExecuteReader();//执行查,返回SqlDataReader对象,通过该对象可以遍历获取所有查询到的数据 command.ExecuteNonQuery();//执行增删改...,返回int(也就是受影响的行数) command.ExecuteScalar();//执行带聚合函数的语句,返回object 第2,3种的返回值可以直接使用,这里不再演示,下面讲解一下,如何使用返回的...SqlDataReader对象遍历查询到的数据。...它的read()方法是读取下一条数据,返回一个bool值,当读取到最后一行以后,返回false,通常的用法就是判断是否有值,如果有值就用while循环读取数据,读取数据使用reader[索引]的形式,或者使用...有些时候,我们需要一次性更改多个表中的数据,一条执行失败就要回滚数据,这就要用到ADO.Net中的事务: using (SqlConnection connection = new SqlConnection

    76130

    executenonquery报错_sql2008和mysql

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

    70210

    一步一步在Windows中使用MyCat负载均衡 下篇

    之前在 一步一步在Windows中使用MyCat负载均衡 上篇 中已经讲了如何配置出MyCat。下面讲其相关的使用。...和follower 之间通讯的次数,总时间5*2=10秒 syncLimit=5 # 存储内存中数据库快照的位置,如果不设置参数,更新事务日志将被存储到默认位置。...MyCAT优化过的ADO层驱动,即Pomelo.Data.MyCat,开发者通过使用MyCatConnection、MyCatCommand类可以实现对MyCAT的连接与查询。...,返回DataSet /// /// 查询语句 /// <returns...DataSource = ds.Tables[0]; 七、注意  MyCat 主键ID自增长配置,但保存时还是会出现下面的情况,当还是没指定ID时,插入的ID还是下面的ID会导致插入失败,因此想做分布式最好是将

    972100

    《MySQL》系列 - 小胖问我:MySQL 日志到底有啥用?菜!

    于是执行以下的 sql 语句: update student set age = age + 1 where id = 2; 前面聊过查询语句是如何执行的?...Mysql 架构图 update 语句发起:首先连接器会连接数据库。接着分析器通过词法、语法分析知道这是更新语句。所以查询缓存失效。 之前的文章提到:如果表有更新。那么它的查询缓存会失败。...PS:当需要更新的数据页在内存中时,就会直接更新内存中的数据页;不在内存中时,在可以使用 change buffer(篇幅有限,这个后面写文章再聊) 的情况下,就会将更新操作记录到 change buffer...中,并将这些操作记录到 redo log 中;如果此时有查询操作,则触发 merge 操作,返回更改后的记录值。...也就是说设置为 0 时是(大约)每秒刷新写入到磁盘中的,当系统崩溃,会丢失 1 秒钟的数据。

    53340

    asp.net 建多个项目实现三层的实例——读取一张表中的记录条数

    第二步:所要完成的功能的说明: 在这里我要完成的功能其实非常非常的简单,就是查询一张表,看里面有多少条数据,然后返回数据的条数,大致是这样的,我们有一个窗体窗体上有个按键,点击这个按键(查看XXX表中的数据条数...第三步:三层实现流程介绍 1.确定sql语句 为了保证数据库操作语句不出错误,我先在数据库中新建查询,看能不能查到我要的结果,我用的数据库是sqlserver,数据库管理软件是微软的 MSMS,查询结果如图所示...如图所示可以看到,用该语句查询出的结果是表中有54条数据,下面我看一下是否有误: ?...怎么引,简单,将光标定位到划红线的地方,使用快捷键 Ctrl + Alt +F10 ,会弹出提示语句,选中提示语句就可以了,这个快捷键还蛮好用,可以记一记。如图所示: ?...这与我前面用sql语句在数据库直接查询的数据是一致的。   好了,这个最简单的三层就记录到这里啦,虽然是如此的简单,但还是写了这么长,没办法,谁叫我菜呢。

    1.2K20

    使用C#进行数据库增删改查(二)

    事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改。...C#提供了SqlTransaction类来处理数据库事务,下面通过一个示例方法来看一下这个类如何使用: using(SqlConnection connection=new SqlConnection(...尤其是在UI线程中进行耗时操作时我们需要将这种操作放在后台,下面以查询操作为例做一下异步版本的演示: /// /// 执行查询操作(异步泛型版) /// ///...sql语句 /// 参数 /// 数据集合,出错返回null</...{ return null; } } } //在主线程中调用此方法查询数据(数据表跟上一篇文章一样),具体逻辑如下: SqlParameter[] parameters

    78240

    让异常处理代码更健壮

    跳过 } // 记到日志里,继续处理 try { throw new IOException("Made up"); } catch (IOException e) { log.error...然而几周或几个月后,这些代码将成为开发人员的噩梦。绝大多数人可不想读日志查问题。因此,还是让我们避免这种情况。 规则一:catch 语句是用来处理异常的,把异常记到日志里然后继续执行不算处理。...转换经常用于处理受检异常(checked exception),在方法中异常无法抛出,并且无法恢复时使用。...一个很好的例子就是网络中断重试。如果定义了这种策略,那么就能够恢复到正常状态。例如,如果通过网络发送数据失败,可以将数据写入本地存储。当然,这时就必须定义如何处理该文件。...(e1); } } } // 恢复:如果传输失败记录到文件 try { // 发送信息 throw new MessagingException("Made up

    56510

    C#二十六 使用Ado.Net调用存储过程

    存储过程是连接式访问数据库的一种延伸,主要是通过命令对象调用数据库系统中的存储过程来完成的。存储过程可以带参数,也可以不带参数,可以返回结果页可以没有返回结果。...我们知道存储过程中存在输入输出参数,所以在介绍C#调用存储过程前,需要来看看系统为我们提供的参数参数对象到底有何用处以及如何使用。...在实现上面的插入操作时,可以使用参数化Sql语句将两个Sql语句中不同的部分用参数来表示,然后在使用的时候给参数赋予一个具体的值即可,这样就不用每次都将Sql语句重新写一遍了。...上面的参数化Sql语句中使用的"@Id"等就是参数(参数以@开头可随便定义名称),在SqlCommand中需要为这些参数创建对应的参数对象,具体说来参数化Sql语句的使用有三步: 1....If@@Error0 Return-1 //如果查询语句出错返回-1 Else Return 0 Go 我们调用这个存储过程的部分代码如下: SqlConnection

    11110

    使用C#进行数据库增删改查(一)

    以下是Student数据库的StudentInfo数据表中的所有数据,增删改查的演示都会基于此表: 查询操作: 接下来我们演示一下查询,查询李四的所有信息,代码如下: SqlParameter...执行查询操作,需要调用SqlCommand的ExecuteReader()方法,改方法返回一个SqlDataReader对象,通过这个对象,我们可以获取数据,它的两个常用属性的用法在代码注释中已写出,下面着重介绍...如果有数据,SqlDataReader中的指针就指向第0行,我们需要调用Read()方法,将指针下移,如果下一行不为空,该方法返回true,否则返回false。...();//result为1 } catch { return 0; } } } 删除和更新也是一样的,只不过是sql语句不一样...执行聚合函数: SqlCommand类提供了一个ExecuteScalar()来执行聚合函数,聚合函数的返回值是不固定的,所以这个方法的返回值是object,用法也是类似,返回的这个object值就是查询的结果

    1.5K10

    SQL 写入调优

    在客户端代码中,我们使用拼接SQL语句方式实现数据写入,由于SQL语句是动态执行的,所以恶意用户可以通过拼接SQL的方式实施SQL注入攻击。   ...()或Dispose()时,池进程会将连接返回到活动连接池集中,而不是真正关闭连接,连接返回到池中之后,即可在下一个Open调用中重复使用。   ...那么,当SQL Server正在做所有这些事情时,它会产生锁,以确保用户获得有意义的结果。...磁盘IO   SQL Server最终会将数据写入到磁盘中,首先,SQL Server把数据写入到事务日志中,当执行备份时,事务日志会合并到永久的数据库文件中;这一系列操作由后台完成,它不会影响到数据查询的速度...使用表参数   如果,大家使用SQL Server 2008,它提供一个新的功能表变量(Table Parameters)可以将整个表数据汇集成一个参数传递给存储过程或SQL语句。

    99060
    领券