一般情况下,我们对数据库的操作,可以分为两种类型:

  • 不返回记录集的命令,通常是执行插入、修改、删除等操作的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需要以下步骤:

  1. 声明一个有效的SqlConnection对象;
  2. 声明一个有效的SqlCommand对象;
  3. 为Command对象指定需要操作的SQL语句;
  4. 为Command对象指定关联的Connection实例对象;
  5. 打开Connection对象;
  6. 执行Command对象中的方法进行数据库操作;
  7. 关闭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语句相关推荐

  1. SSIS高级转换任务—执行SQL语句

    下面的随笔中将讲述SSIS中的高级转换任务,和老旧的SQL Server 2000 DTS相比,我们会发现现在以前的dark-arrow,data-pump任务没有了.在转换任务中隐藏ActiveX脚 ...

  2. 一起谈.NET技术,linq2sql:直接执行sql语句

    1.ExecuteQuery方法 看命名,我们很容易联想到ado.net里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该&quo ...

  3. phpmyadmin执行mysql语句_如何在phpMyAdmin中执行sql语句

    大家使用phpMyAdmin中常遇到这样的问题:MySQL Error Message: MySQL Query Error SQL: SELECT main.*, field.* FROM ucho ...

  4. efcore调用函数_EFCore执行Sql语句的方法:FromSql与ExecuteSqlCommand

    前言 在EFCore中执行Sql语句的方法为:FromSql与ExecuteSqlCommand:在EF6中的为SqlQuery与ExecuteSqlCommand,而FromSql和SqlQuery ...

  5. oracle中执行动态sql语句吗,oracle中有没有可动态执行sql语句的函数

    oracle中有没有可动态执行sql语句的函数 关注:233  答案:2  手机版 解决时间 2021-03-05 15:53 提问者祗剩寂寞 2021-03-04 22:38 oracle中有没有可 ...

  6. Entity Framework 在MySQL中执行SQL语句,关于参数问题

    在Entity Framework中添加MySQL模型,在写代码的过程中需要直接执行SQL语句. 在SQL语句中用到了@curRank := 0 这样在SQL语句中定义参数,同时还会有传入参数:ai. ...

  7. oracle: 在sqlplus中,执行sql语句

    sqlplus输入格式如下: 用户名:  Vabc_def  口令:     1@10.10.20.37/orcl 在sqlplus中,执行sql语句,比在plsql中批量执行更快.  ps: 一定要 ...

  8. PHP获取MySQL执行sql语句的查询时间

    PHP获取MySQL执行sql语句的查询时间 1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开 ...

  9. pdo_fetch执行mysql_PDO中执行SQL语句的三种方法

    在PDO中,我们可以使用三种方式来执行SQL语句,分别是 exec()方法,query方法,以及预处理语句prepare()和execute()方法~大理石构件来图加工 在上一篇文章<使用PDO ...

  10. Java 技术篇 - java同时连接多种数据库执行sql语句的兼容性验证,数据库类型包括:oracle、sqlserver、DB2、人大金仓、达梦、PG、瀚高、polardb

    Java 操作多类型数据库下的兼容性验证 第一章:数据库测试 ①[ oracle 数据库不支持分号]ORA-00933: SQL 命令未正确结束 ② [sqlserver 数据库不支持 commit] ...

最新文章

  1. matlab算法开发与C++调用
  2. 为什么选择格鲁圣教之Go程序版
  3. Python fire官方文档教学(自动生成命令行,个人觉得意义不大,不如argparse)
  4. 逻辑回归分类python实例_Python逻辑回归原理及实际案例应用
  5. first blog
  6. 大数据有哪些分析误区
  7. Lesson 07 for Plotting in R for Biologists
  8. 桌面支持--teamviwer如果没装杀毒软件,会有警告
  9. C++ std::vector 容器 是什么
  10. linux下web目录权限设置
  11. es 在数据量很大时(数十亿级别)如何提高查询效率啊
  12. 【信号检测】基于双稳随机共振微弱信号检测含Matlab源码
  13. 分配销售组织 - 分销渠道 - 工厂
  14. 弘辽科技:淘宝店铺评分太低是降权了吗?
  15. Filtered off site request to
  16. CentOS升级内核版本_linux升级内核版本_Redhat升级内核版本
  17. 如何打造数据化决策管理
  18. Python中的主函数
  19. 未在服务器上找到sql安装程序文件,MS SQL Server 2000/以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
  20. 操原作业(一)Ubuntu系统编译一个新的内核

热门文章

  1. oracle 设置不可重复,oracle – 不可重复读和幻读之间有什么区别?
  2. 算法:匹配有效的括号20. Valid Parentheses
  3. android.util.typedvalue的jar包,android – 了解Typed值类
  4. PaddlePaddle Transformer encoder 源码解析 v1.7
  5. pip install transformers
  6. Python sys.path、sys.modules模块介绍
  7. 局域网计算机无法配置网关,在内网中,为什么不设置“默认网关”计算机也能互相通讯?...
  8. 机器学习岗面试准备提纲笔记
  9. 机器学习,参数之-学习率设置
  10. 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别