OleDbParameter与SqlParameter的最大区别

  一直使用微软的sqlhelper,它使用SqlParameter进行查询参数的传递。
例如:
private SqlParameter[] GetParameters(tInfo info)
{
  SqlParameter[]parameters =
  {
    new SqlParameter("@iid",SqlDbType.Int,4),
    new SqlParameter("@name",SqlDbType.VarChar,50)
  };
  parameters[0].Value= info.iid;
  parameters[1].Value= info.name;
  returnparameters;
}


  使用没有问题。不论是insert,update还是delete都可以准确无误。

可是我自己写了一个odbchelper,使用OleDbParameter时,update总是报错。说类型不匹配,搜索了很多资料,才发现,原来OleDbParameter[]的参数使用顺序与sql语句里的参数使用顺序必须是对应的。

  update时,id是的位置是最后的,因为语句形式为:

update 表名 set 列=值 where id=xxxx

所以,需要用下面的方法写

private OleDbParameter[] GetParameters(tInfo info)
{
  OleDbParameter[]parameters =
  {
    new OleDbParameter("@name",OleDbType.VarChar,50),
    newOleDbParameter("@iid",OleDbType.Integer)
  };
  parameters[0].Value= info.name;
  parameters[1].Value= info.iid;


  return parameters;
}

原文地址:http://blog.163.com/goodluck_lq@126/blog/static/632853862010019940479/

 

转载于:https://www.cnblogs.com/yxlove/articles/3549359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值