mysql中有execute_jdbc连接mysql数据库

mysql中有execute_jdbc连接mysql数据库最近在补基础知识,刚好补到C#中对数据库操作的一些技术,今天学习了ExecuteNonQuery的东西,看自己项目维护项目的代码和网上资料查询,基本上搞懂了ExecuteNonQuery的用法,小小的做个总结,供以后查阅。ExecuteNonQuery方法主要用来更新数据,当然也可以用来执行目标操作(例如查询数据库的结构或者创建诸如表等的数据库对象)。通常用它来执行insert、update、de…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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

一、首先,来看看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方法跟新数据库。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classExecuteNonQueryClas

{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 ExecuteNonQuery()’

privateExecuteNonQueryClas()

{

}public static int ExecuteNonQuery(stringcommandText)

{return ExecuteNonQuery(commandText, (SqlParameter[])null);

}public static int ExecuteNonQuery(stringcommandText,SqlParameter[] commandParams)

{//if connectionString is null, then throw exception

if(connectionString == null || connectionString.Length == 0)throw new ArgumentNullException(“connectionString”);using(SqlConnection conn = newSqlConnection(connectionString))

{

SqlCommand cmd= newSqlCommand(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();returnrecordsAffected;

}

}private static voidAttachParameters(SqlCommand cmd,SqlParameter[] commandParams)

{if (cmd == null) throw new ArgumentException(“command”);if (commandParams != null)

{foreach (SqlParameter p incommandParams)

{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);

}

}

}

}

}

View Code

2. 在主函数中的调用:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

static void Main(string[] args)

{string userName =Console.ReadLine();string loginId = “user”;string sqlString = “update Users set UserName = @name where LoginID= @loginID”;

SqlParameter[] parms={new SqlParameter(“@name”,userName),new SqlParameter(“@loginID”,loginId)

};int rlt =ExecuteNonQueryClas.ExecuteNonQuery(sqlString,parms);

Console.WriteLine(rlt);

Console.Read();

}

View Code

好啦, 上面就是使用ExecuteNonQuery方法最简单的介绍和示例。

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

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

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


相关推荐

  • (void (*Visit)(const ElemType &))[通俗易懂]

    (void (*Visit)(const ElemType &))[通俗易懂]templatevoidLinkList::Traverse(void(*Visit)(constElemType&))const//引用函数,函数指向指针{Node*p=head->next;//新建指向节点类指针p,指针指向头结点的nextwhile(p!=NULL){(*Visit)(p->data);p=p->next;}}…

    2022年5月15日
    32
  • LVM扩容操作

    LVM扩容操作文章目录一、测试环境二、给lvm分区扩容(加硬盘)1.新增硬盘2.给新的硬盘分区3、Lvm操作查看卷组状态:`vgdisplay`创建物理卷:`pvcreate/dev/sdb1`扩展卷组:`vgextend卷组名物理卷路径`扩展逻辑卷:lvextend拉伸文件系统:xfs_growfs或者resize2fs4、验证结果:参考文档一、测试环境我是在virtualbox上安装的测试环境:centos。其具体硬盘配置如下df-Th磁盘情况:fdisk-l今天主要是分别操作下

    2022年6月20日
    36
  • jedis连接池配置_为什么要用连接池

    jedis连接池配置_为什么要用连接池Jedis实例不是线程安全的,所以不可以多个线程共用一个Jedis实例,但是创建太多的实现也不好因为这意味着会建立很多sokcet连接。JedisPool是一个线程安全的网络连接池。可以用JedisPool创建一些可靠Jedis实例,可以从池中获取Jedis实例,使用完后再把Jedis实例还回JedisPool。这种方式可以避免创建大量socket连接并且会实现高效的性能.JedisPool初

    2022年9月4日
    10
  • mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」

    mt4 python_一个使用Python自动化交易外汇MT4脚本实现「建议收藏」安装C++运行环境[需要C++的运行环境,TheDLLsrequirethatyouhavethelatestVisualC++runtime(2015)]:https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads克隆代码下来关闭杀毒软件!!!解压MT4配置…

    2022年5月7日
    246
  • SparkIV「建议收藏」

    SparkIV「建议收藏」SparkIVSparkIV是知名游戏GTA4的一款游戏资源读取/导入/导出/编辑/修改的修改软件。很多玩家使用SparkIV为GTA4安装车辆MOD,人物MOD,武器MOD等。不过Spar

    2022年8月5日
    13
  • 0x00和’0′[通俗易懂]

    0x00和’0′[通俗易懂]往往小问题才会折腾很久。msmset((void*)virt,0x00,PAGE_SIZE)和msmset((void*)virt,‘0’,PAGE_SIZE)区别就在于0x00只是为了强调就是数字0,就是为了ASCII码转换的数字0!不是字符‘0’!如果手误将数字0写作字符‘0’,那就达不到用‘\0’清空字符串的目的了。所以最近在内核中分配页的时候总是判断最后一级页表项出错,原来是在allo

    2025年7月5日
    0

发表回复

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

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