ExecuteNonQuery()返回值

ExecuteNonQuery()返回值

本文导读:虽然 ExecuteNonQuery 不返回任何行,但映射到参数的任何输出参数或返回值都会用数据进行填充。对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。对于所有其他类型的语句,返回值为 -1。如果发生回滚,返回值也为 -1 。 下面介绍ExecuteNonQuery()返回值

ExecuteNonQuery()方法主要用户更新数据,通常它使用Update,Insert,Delete语句来操作数据库

 

一、ExecuteNonQuery方法返回值

 

1、对于 Update,Insert,Delete  语句 执行成功是返回值为该命令所影响的行数,如果影响的行数为0时返回的值为0。

2、对于所有其他类型的语句,返回值为 -1。

3、如果发生回滚,返回值也为 -1 。

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

 

 

二、ASP.NET中ExecuteNonQuery的使用示例

 
C# 代码   
复制
public void CreateMySqlCommand(string myExecuteQuery, SqlConnection myConnection)   
{  
    SqlCommand myCommand = new SqlCommand(myExecuteQuery, myConnection);  
   myCommand.Connection.Open();  
    myCommand.ExecuteNonQuery();  
    myConnection.Close();  
 } 

 

三、用ExecuteNonQuery()方法执行create操作

 

C# 代码   
复制
 
    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());

ExecuteNonQuery()返回值

如果执行成功的话 返回的值为-1,如果数据表已经存在的话返回异常:数据库中已存在名为 ‘aaa’ 的对象。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114048.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL Server 日期 字符串 格式转换 函数 datetime convert「建议收藏」

    SQL Server 日期 字符串 格式转换 函数 datetime convert「建议收藏」文章目录IntroSQLOthersIntro对某些表格数据进行查询时,常常有按照时间进行列值过滤的需求。SQLSQLServer内置函数CONVERT(data_type(length),data_to_be_converted,style)常见的两种转换需求:1.日期–>字符串2.字符串–>日期SQLselectgetdate(); –datetime–datetime–>stringdeclare@dateti

    2022年10月8日
    3
  • 简单jquery写css样式[通俗易懂]

    简单jquery写css样式[通俗易懂]简单jquery写css样式

    2022年4月23日
    53
  • sass和less是什么?

    sass和less是什么?这里是修真院前端小课堂 每篇分享文从 背景介绍 知识剖析 常见问题 解决方案 编码实战 扩展思考 更多讨论 参考文献 八个方面深度解析前端知识 技能 本篇分享的是 sass 和 less 是什么 1 背景介绍 sass 和 less 是什么 1 1 SASS 是一种 CSS 的开发工具 提供了许多便利的写法 大大节省了设计者的时间 使得 CSS 的开发 变得简单和可维护

    2025年12月1日
    2
  • 浅谈cookie跨域的解决方案——document.domain[通俗易懂]

    浅谈cookie跨域的解决方案——document.domain[通俗易懂]cookie的名/值对中的值不允许出现分号、逗号和空白符,因此在设置cookie前要用encodeURIComponent()编码,读取时再用decodeURIComponent()解码。cookie默认的有效期是浏览器会话期间,作用域是整个浏览器而不仅仅局限于窗口或标签页。若要延长cookie的有效期,可以设置max-age属性。cookie的domain和path属性:1.

    2022年7月27日
    22
  • Laravel Homestead 的安装和使用

    Laravel Homestead 的安装和使用

    2022年3月13日
    43
  • java list转set用法

    java list转set用法参考:https://blog.csdn.net/kye055947/article/details/80561633之前一直被这两list转set,set转list所烦恼,今天整理了下两者之间怎么转的初始化listList<Integer>list=newArrayList<>();list.add(11);list.add(22);list.add(33);方法一(直接放HashSet里面)Set<Integer>lis

    2022年6月21日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号