• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

executenonquery 的用法详解

c# 搞代码 4年前 (2022-01-09) 55次浏览 已收录 0个评论

executenonquery 的用法详解

C#中操作数据库技术之ExecuteNonQuery用法

最近在补基础知识,刚好补到C#中对数据库操作的一些技术,今天学习了ExecuteNonQuery的东西,看自己项目维护项目的代码和网上资料查询,基本上搞懂了ExecuteNonQuery的用法,小小的做个总结,供以后查阅。

ExecuteNonQuery方法主要用来更新数据,当然也可以用来执行目标操作(例如查询数据库的结构或者创建诸如表等的数据库对象)。通常用它来执行insert、update、delete语句,在不使用Dataset的情况下更改数据库中的数据。select语句不适合ExecuteNonQuery()方法。

推荐《C++视频教程》

一、首先,来看看ExecuteNonQuery的返回值:

1. 对于Update、insert、Delete语句执行成功是返回值为该命令所影响的行数,如果影响的行数是0,则返回值就是0;

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

3. 如果发生回滚,返回值也为-1;

4. 我们一般对于更新操作,通过判断返回值是否大于0,这个是没有问题的。但是对于其他的操作【如对数据结构的操作(建表等)】如果操作成功返回值却是-1,但是要注意一下啊,例如给数据库添加一个新表,创建成功返回-1,如果操作失败就会发生异常,所有执行这种操作最好用Try,Catch语句来捕捉异常。

二、 command对象通过ExecuteNonQuery方法更新数据库的过程非常简单,步骤如下:

1. 创建数据库连接;

2. 创建Command对象,并指定一个SQL Inser、Update、Delete查询或者存储过程;

3. 把Command对象依附到数据库连接上;

4. 调用ExecuteNonQuery()方法;

5. 关闭连接。

三、代码示例使用方法:

1. 首先是一个很简单的类,里面提供了如何用command对象通过ExecuteNonQuery方法跟新数据库。

public class ExecuteNonQueryClas    {        private static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;        //as this method provided static method, set the constructor to priviate to prevent create instance with 'new Execu<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码网%</span>teNonQuery()'        private ExecuteNonQueryClas()        {        }        public static int ExecuteNonQuery(string commandText)        {            return ExecuteNonQuery(commandText, (SqlParameter[])null);        }        public static int ExecuteNonQuery(string commandText,SqlParameter[] commandParams)        {            //if connectionString is null, then throw exception            if(connectionString == null || connectionString.Length == 0)                throw new ArgumentNullException("connectionString");                        using(SqlConnection conn = new SqlConnection(connectionString))            {                SqlCommand cmd = new SqlCommand(commandText,conn);                if (conn.State != ConnectionState.Open)                    conn.Open();                //check if the commandParams is not null, then attach params to command                if(commandParams !=null)                  AttachParameters(cmd,commandParams);                int recordsAffected = cmd.ExecuteNonQuery();                return recordsAffected;            }        }        private static void AttachParameters(SqlCommand cmd,SqlParameter[] commandParams)        {            if (cmd == null) throw new ArgumentException("command");            if (commandParams != null)            {                foreach (SqlParameter p in commandParams)                {                    if (p != null)                    {                        //// Check for derived output value with no value assigned                        if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null))                        {                            p.Value = DBNull.Value;                        }                        cmd.Parameters.Add(p);                    }                }            }        }    }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:executenonquery 的用法详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址