OleDbCommand使用参数应该注意的地方
最近写程序用到OleDbCommand的Parameter写数据库,遇到很多问题:
1、OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序不支持用于将参数传递到 SQL 语句或存储过程的命名参数。在此情况下,必须使用问号 (?) 占位符,如以下示例所示。SELECT * FROM Customers WHERE CustomerID = ?
2、将参数用于OleDbCommand 或 OdbcCommand 时,向 Parameters 集合中添加参数的顺序必须与存储过程中所定义的参数顺序相匹配。OLE DB .NET Framework 数据提供程序和 ODBC .NET Framework 数据提供程序将存储过程中的参数视为占位符,并且将按顺序使用这些参数值。另外,返回值参数必须是添加到 Parameters 集合中的第一批参数。
因此,向 Parameters 集合添加 Parameter 对象的顺序必须直接对应于该参数的问号占位符的位置
例如:
string sql = "insert into T_Fundratesum(fundcode,yhcode,sumdate,period,m12brate,m12rrate,createtimestamp) values (?,?,?,?,?,?,?)";
OleDbCommand comm = new OleDbCommand(sql, conn);
comm.Parameters.Add(new OleDbParameter("@fundcode", OleDbType.VarChar));
comm.Parameters[0].Value = dt.Rows[i]["yhcode"].ToString();
comm.Parameters.Add(new OleDbParameter("@yhcode", OleDbType.VarChar));
comm.Parameters[1].Value = dt.Rows[i]["fundcode"].ToString();
comm.Parameters.Add(new OleDbParameter("@sumdate", OleDbType.Date));
comm.Parameters[2].Value = DateTime.Now.ToString();
comm.Parameters.Add(new OleDbParameter("@PERIOD", OleDbType.Double));
comm.Parameters[3].Value = dt.Rows[i]["PERIOD"];
comm.Parameters.Add(new OleDbParameter("@M12BRATE", OleDbType.Double));
comm.Parameters[4].Value = dt.Rows[i]["M12BRATE"];
comm.Parameters.Add(new OleDbParameter("@M12RRATE", OleDbType.Double));
comm.Parameters[5].Value = dt.Rows[i]["M12RRATE"];
comm.Parameters.Add(new OleDbParameter("@createtimestamp", OleDbType.VarChar));
comm.Parameters[6].Value = DateTime.Now.ToString();
当然还有最笨的办法就是,定义一个字符串,然后将其里面的参数用string.replace替换。
我从网上查到一个网友的回复如下:我想应该是这样的
1.SqlCommand should be '@' character
2.OleDbCommand or OdbcCommand should be '?' character
3.OracleCommand should be ':' character
唉,这些Command的不便利性使得用户在使用时常常摸不到头脑,不同的command有不同的参数格式设置,以后应该多多注意。
OleDbCommand使用参数应该注意的地方的更多相关文章
- 低功耗蓝牙BLE之连接事件、连接参数和更新方法
转自:http://blog.csdn.net/zzfenglin/article/details/51304084 连接事件 在一个连接当中,主设备会在每个连接事件里向从设备发送数据包.一个连接事件 ...
- 黑马程序员_Java基础:可变参数(Varagrs)的使用注意事项
------- android培训.java培训.期待与您交流! ---------- 因为在先前学习java的过程中,有涉及到可变参数,但没有太深入的去学习.所以最近自己找了些相关资料,想加深了解. ...
- oracle-7参数文件的管理
参数文件的管理:1.参数文件的作用:记录数据库的配置的 (1)pfile ---> 文本文件 (2)spfile --->服务器的参数文件(二进制的) 两个参数文件的区别: pfile ...
- python学习笔记12(函数三): 参数类型、递归、lambda函数
一.函数参数的类型 之前我们接触到的那种函数参数定义和传递方式叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个对参数的位置和个数都有严格的要求.而在Python中还有一种是通过参 ...
- 你所误解的微信公众号开发、以及微信公众号网页授权、接收url跳转参数等问题
前言:有一星期没跟新博客了,最近太忙.项目赶进度就没把时间花在博客上:今天来说说所谓的微信公众号开发和填坑记录: 微信公众号:运行在微信终端的应用 (对于开发者来说比较爽的你只需考虑兼容微信浏览器,因 ...
- JVM调优常用参数和注意点备忘录
本文主要是工作过程中总结的一些jvm调优的参数和注意的地方,作为一个备忘录,先占个坑,有时间在来细化具体的实例. gc日志是覆盖的方式如果文件名字固定会导致上一次被覆盖可以采用这个-Xloggc:ba ...
- Python的参数类型
参数类型: 1.必填参数,位置参数(positional arguments,官方定义,就是其他语言所说的参数) 2.默认值参数,非必传 3.可变参数,非必传,不限制参数个数,比如说给多个人发邮件,发 ...
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)
文章目录 前情概要 路由.action的扫描.发现.注册搞定之后,后来我发现在我们的action里面获取参数往往都是通过request对象来一个一个获取.同样的一行代码我们不厌其烦的重复写了无数次.遂 ...
- linux ——使用find如何快速替换所有相同参数
在生成环境上有时候需要大规模修改某一配置里的参数,但是该参数存在多个地方,比如IP地址 端口 项目名等,特别是项目名称混乱想统一 find /项目地址 -type f |xargs grep &qu ...
随机推荐
- X-UA-Compatible也无法解决的IE11兼容问题
3月8日接到一位用户的电话,说写博客时编辑器显示不出来.浏览器用的是披着360外衣的IE11,编辑器用的是CuteEditor. 当时电脑上没安装IE11,用IE10测试正常,心想应该是一个手到擒来的 ...
- busybox,alphine,ubuntu,centos/fedore操作系统
在docker 中搜索busybox docker search busybox 之后我们运行一下这个系统 Alpine操作系统 3.ubuntu 之前一直都安装过,这里不再多叙述 当时用apt- ...
- 用SQL语句检查CPU和磁盘空间
--查看4小时内的CPU变化值,1分钟统计一次 DECLARE @ts_now BIGINT; SELECT @ts_now = ms_ticks FROM sys.dm_os_sys_info; - ...
- 窗口-EasyUI Window 窗口、EasyUI Dialog 对话框、EasyUI Messager 消息框
EasyUI Window 窗口 扩展自 $.fn.panel.defaults.通过 $.fn.window.defaults 重写默认的 defaults. 窗口(window)是一个浮动的.可拖 ...
- 优雅的使用Laravel之phpstorm配置
优雅的使用Laravel之phpstorm配置 先打开一个Laravel 项目,然后在project tool 窗口选择根节点.然后右键->Composer | Init composer . ...
- Django 模型(数据库)
Django 模型(数据库) ) email = models.EmailField() memo = models.TextField() def __unico ...
- Redis Python开发指南
redis基本命令 String set setex psetex mset mget getset getrange setrange setbit getbi ...
- C++ builder 书籍推荐
china-pub网上书店c++builder书籍专区,本专区专门为c++builder学习者提供目前最为畅销实用的c++builder技术书籍,通过对本专区c++builder书籍的了解,让您学习c ...
- java操作Word总结
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Varia ...
- cocos代码研究(18)Widget子类Slider学习笔记
理论基础 滑动条控件. 代码实践 实例: // Create the slider Slider* slider = Slider::create(); slider->loadBarTextu ...