3.使用SqlCommand执行SQL语句
一般情况下,我们对数据库的操作,可以分为两种类型:
- 不返回记录集的命令,通常是执行插入、修改、删除等操作的SQL语句来更新数据记录;
- 返回记录集的命令,通常是执行查询操作的SQL语句来获取数据集;
不论哪种操作,我们都需要使用Command对象来执行SQL语句。由于我们使用Sql Cilent Data Provider,那么我们就需要定义SqlCommand对象。
SqlCommang对象的构造方法:
- SqlCommand()
- SqlCommand(string cmdText)
- SqlCommand(string cmdText,SqlConnection connection)
- SqlCommand(string cmdText,SqlConnection connection,SqlTransaction transation)
从以上的构造方法,我们可以知道,SqlCommand对象需要接受一个有效的SqlConnection,用来告知Command对象需要和那个数据源进行交互。我们还可以在Command对象中传入需要执行的SQL语句。如果需要的话,我们可以传入SqlTransaction参数实现事务。
使用一个Command需要以下步骤:
- 声明一个有效的SqlConnection对象;
- 声明一个有效的SqlCommand对象;
- 为Command对象指定需要操作的SQL语句;
- 为Command对象指定关联的Connection实例对象;
- 打开Connection对象;
- 执行Command对象中的方法进行数据库操作;
- 关闭Connection对象;
例子:在smt_test表插入一条新的记录:
别忘记(using System.Data.SqlClient;)
string sConnnectionString = @"server=iwebserver001;database=others_testdb;user id=others_testdb_dbo;password=111111;"; string sSql = "insert into smt_test (name,addtime) values('1',getdate())"; //声明一个有效的SqlConnection对象; SqlConnection conn = new SqlConnection(); conn.ConnectionString = sConnnectionString; //声明一个有效的SqlCommand对象; SqlCommand cmd = new SqlCommand(); //为Command对象指定需要操作的SQL语句; cmd.CommandText = sSql; //为Command对象指定关联的Connection实例对象; cmd.Connection = conn; //打开Connection对象; conn.Open(); //执行Command对象中的方法进行数据库操作; cmd.ExecuteNonQuery(); //关闭Connection对象; conn.Close();
我们在使用在线对象SqlConnection的时候,要尽早关闭活动连接。可以使用using{}语句块开自动释放活动连接。
使用using以后,Connection对象就不需要Close(),using语句会在代码块结束的时候自动调用相应对象的Dispose()方法来释放对象资源。由于Command对象同样实现了Dispose()方法,我们也同样使用using来自动释放资源。对于涉及到系统资源的对象,建议大家使用using,这是微软推荐的最佳实践方式。
代码修改如下:
string sConnnectionString = @"server=iwebserver001;database=others_testdb;user id=others_testdb_dbo;password=111111;"; string sSql = "insert into smt_test (name,addtime) values('2',getdate())"; using (SqlConnection conn = new SqlConnection()) {conn.ConnectionString = sConnnectionString;conn.Open();using(SqlCommand cmd = new SqlCommand()){cmd.CommandText = sSql;cmd.Connection = conn;cmd.ExecuteNonQuery();} }
转载于:https://www.cnblogs.com/lingcongli/archive/2011/07/06/2099070.html
3.使用SqlCommand执行SQL语句相关推荐
- SSIS高级转换任务—执行SQL语句
下面的随笔中将讲述SSIS中的高级转换任务,和老旧的SQL Server 2000 DTS相比,我们会发现现在以前的dark-arrow,data-pump任务没有了.在转换任务中隐藏ActiveX脚 ...
- 一起谈.NET技术,linq2sql:直接执行sql语句
1.ExecuteQuery方法 看命名,我们很容易联想到ado.net里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该&quo ...
- phpmyadmin执行mysql语句_如何在phpMyAdmin中执行sql语句
大家使用phpMyAdmin中常遇到这样的问题:MySQL Error Message: MySQL Query Error SQL: SELECT main.*, field.* FROM ucho ...
- efcore调用函数_EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand
前言 在EFCore中执行Sql语句的方法为:FromSql与ExecuteSqlCommand:在EF6中的为SqlQuery与ExecuteSqlCommand,而FromSql和SqlQuery ...
- oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数
oracle中有没有可动态执行sql语句的函数 关注:233 答案:2 手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...
- Entity Framework 在MySQL中执行SQL语句,关于参数问题
在Entity Framework中添加MySQL模型,在写代码的过程中需要直接执行SQL语句. 在SQL语句中用到了@curRank := 0 这样在SQL语句中定义参数,同时还会有传入参数:ai. ...
- oracle: 在sqlplus中,执行sql语句
sqlplus输入格式如下: 用户名: Vabc_def 口令: 1@10.10.20.37/orcl 在sqlplus中,执行sql语句,比在plsql中批量执行更快. ps: 一定要 ...
- PHP获取MySQL执行sql语句的查询时间
PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...
- pdo_fetch执行mysql_PDO中执行SQL语句的三种方法
在PDO中,我们可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~大理石构件来图加工 在上一篇文章<使用PDO ...
- Java 技术篇 - java同时连接多种数据库执行sql语句的兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb
Java 操作多类型数据库下的兼容性验证 第一章:数据库测试 ①[ oracle 数据库不支持分号]ORA-00933: SQL 命令未正确结束 ② [sqlserver 数据库不支持 commit] ...
最新文章
- matlab算法开发与C++调用
- 为什么选择格鲁圣教之Go程序版
- Python fire官方文档教学(自动生成命令行,个人觉得意义不大,不如argparse)
- 逻辑回归分类python实例_Python逻辑回归原理及实际案例应用
- first blog
- 大数据有哪些分析误区
- Lesson 07 for Plotting in R for Biologists
- 桌面支持--teamviwer如果没装杀毒软件,会有警告
- C++ std::vector 容器 是什么
- linux下web目录权限设置
- es 在数据量很大时(数十亿级别)如何提高查询效率啊
- 【信号检测】基于双稳随机共振微弱信号检测含Matlab源码
- 分配销售组织 - 分销渠道 - 工厂
- 弘辽科技:淘宝店铺评分太低是降权了吗?
- Filtered off site request to
- CentOS升级内核版本_linux升级内核版本_Redhat升级内核版本
- 如何打造数据化决策管理
- Python中的主函数
- 未在服务器上找到sql安装程序文件,MS SQL Server 2000/以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
- 操原作业(一)Ubuntu系统编译一个新的内核
热门文章
- oracle 设置不可重复,oracle – 不可重复读和幻读之间有什么区别?
- 算法:匹配有效的括号20. Valid Parentheses
- android.util.typedvalue的jar包,android – 了解Typed值类
- PaddlePaddle Transformer encoder 源码解析 v1.7
- pip install transformers
- Python sys.path、sys.modules模块介绍
- 局域网计算机无法配置网关,在内网中,为什么不设置“默认网关”计算机也能互相通讯?...
- 机器学习岗面试准备提纲笔记
- 机器学习,参数之-学习率设置
- 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别