C#下利用parameter参数化集合对MySQL数据库进行Update时遇到的问题

7 篇文章 0 订阅

     连接数据库用的是5.2.3.0版本MySQL.data.dll ,期间遇到几个小问题,记录一下

      一、在进行mysql参数化传值、时出现错误Fatal error encountered during command execution搞了半天才明白好像是parameter中加入条件后需要SQL语句参数自定义化,然后就是在 连接字符串里加上 :Allow User Variables=True

server=;port=3306;user=root;password=1111; database=shujukuming;CharSet=gb2312;Allow User Variables=True;"

二、 在sql语句利用ExecuteNonQuery方法来判断是否写入是发现老是写入失败本以为是符号“@”和“?",不同的问题,后来发现不是,最后发现是参数多一个空格。。。。所以以后要多细心,浪费我两三个小时的时间。

 三、关于在parameter中使用"@"还是"?"符号的问题,我简单做了下实验,发现都可以。。。。还请各位大佬多多指教

?占位符;@:局部变量声明。

代码如下

1。

 string sql = "UPDATE table.componentall SET  StartHoistingTime = ?StartHoistingTime,LiftingTime = ?LiftingTime,anzhuangSuperintendent = ?anzhuangSuperintendent,anzhuangScheduleStatus = ?anzhuangScheduleStatus WHERE componentRFID = ?componentRFID";  
        
           MySqlParameter StartHoistingTime = new MySqlParameter("?StartHoistingTime", es.StartHoistingTime);
           MySqlParameter LiftingTime = new MySqlParameter("?LiftingTime", es.LiftingTime);
           MySqlParameter anzhuangSuperintendent = new MySqlParameter("?anzhuangSuperintendent", es.anzhuangSuperintendent);
           MySqlParameter anzhuangScheduleStatus = new MySqlParameter("?anzhuangScheduleStatus", es.anzhuangScheduleStatus);
           MySqlParameter componentRFID = new MySqlParameter("?componentRFID ", es.componentRFID);          
           return DBHelper.ExecuteNonQuery(sql, StartHoistingTime, LiftingTime, anzhuangSuperintendent, anzhuangScheduleStatus, componentRFID);
         

2.

 string sql = "UPDATE table.componentall SET  StartHoistingTime = @StartHoistingTime,LiftingTime = @LiftingTime,anzhuangSuperintendent = @anzhuangSuperintendent,anzhuangScheduleStatus = @anzhuangScheduleStatus WHERE componentRFID = @componentRFID";  
        
           MySqlParameter StartHoistingTime = new MySqlParameter("@StartHoistingTime", es.StartHoistingTime);
           MySqlParameter LiftingTime = new MySqlParameter("@LiftingTime", es.LiftingTime);
           MySqlParameter anzhuangSuperintendent = new MySqlParameter("@anzhuangSuperintendent", es.anzhuangSuperintendent);
           MySqlParameter anzhuangScheduleStatus = new MySqlParameter("@anzhuangScheduleStatus", es.anzhuangScheduleStatus);
           MySqlParameter componentRFID = new MySqlParameter("@componentRFID ", es.componentRFID);          
           return DBHelper.ExecuteNonQuery(sql, StartHoistingTime, LiftingTime, anzhuangSuperintendent, anzhuangScheduleStatus, componentRFID);

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值