博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一...
阅读量:5819 次
发布时间:2019-06-18

本文共 1689 字,大约阅读时间需要 5 分钟。

  1. using Oracle.DataAccess.Client;  
  2. public static String ConnectionString = "Data Source=orcl;User ID=hr;Password=hr;";  
  3.   
  4. public static int Update(MacInfo model)  
  5.     {  
  6.         StringBuilder strSql = new StringBuilder();  
  7.         strSql.Append("update MacInfo set ");  
  8.         strSql.Append("Mac_Address=:Mac_Address,");  
  9.         strSql.Append("Mac_Status=:Mac_Status");  
  10.         strSql.Append(" where MacInfo_ID=:MacInfo_ID");  
  11.         //strSql.Append("Mac_Address='"+model.Mac_Address+"',");//拼凑Update字符串是可以执行成功的  
  12.         //strSql.Append("Mac_Status="+model.Mac_Status);  
  13.         //strSql.Append(" where MacInfo_ID='"+model.MacInfo_ID+"'");  
  14.     //这里注意,strSql中的Update语句参数顺序为:Mac_Address、Mac_Status、MacInfo_ID,所以下面OracleParameter  
  15.     //也必须按这个顺序来声明、赋值  
  16.         OracleParameter[] parameters = {                      
  17.                     new OracleParameter(":Mac_Address", OracleDbType.Varchar2,17),  
  18.                     new OracleParameter(":Mac_Status", OracleDbType.Int32,4),  
  19.                     new OracleParameter(":MacInfo_ID", OracleDbType.Varchar2,17)};  
  20.         parameters[0].Value = model.Mac_Address;  
  21.         parameters[1].Value = model.Mac_Status.ToString();  
  22.         parameters[2].Value = model.MacInfo_ID;  
  23.   
  24.         int result = ExecuteCommand(strSql.ToString(), CommandType.Text,parameters);  
  25.         return result;  
  26.     }  
  27. public static int ExecuteCommand(string queryString, CommandType commandType, params OracleParameter[] param)  
  28.     {  
  29.         int flag = 0;  
  30.         using(OracleConnection con = new OracleConnection(ConnectionString))  
  31.         {  
  32.             OracleCommand command = new OracleCommand(queryString, con);  
  33.             command.CommandType = commandType;  
  34.             if(param != null)  
  35.             {  
  36.                 for(int i = 0; i < param.Length; i++)  
  37.                 {  
  38.                     command.Parameters.Add(param[i]);  
  39.                 }  
  40.             }  
  41.             try  
  42.             {  
  43.                 command.Connection.Open();  
  44.                 flag = command.ExecuteNonQuery();                  
  45.             }  
  46.             catch(Exception ex)  
  47.             {  
  48.                 throw ex;  
  49.             }  
  50.             finally  
  51.             {  
  52.                 command.Connection.Close();  
  53.                 command.Dispose();  
  54.                 command = null;  
  55.             }  
  56.         }  
  57.         return flag;  
  58.     }  

转载地址:http://dmwdx.baihongyu.com/

你可能感兴趣的文章
微信公众号与APP微信第三方登录账号打通
查看>>
onchange()事件的应用
查看>>
Windows 下最佳的 C++ 开发的 IDE 是什么?
查看>>
软件工程师成长为架构师必备的十项技能
查看>>
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>
Cocos2dx 3.0开发环境的搭建--Eclipse建立在Android工程
查看>>
基本概念复习
查看>>
重构第10天:提取方法(Extract Method)
查看>>
Android Fragment使用(四) Toolbar使用及Fragment中的Toolbar处理
查看>>
解决pycharm在ubuntu下搜狗输入法一直固定在左下角的问题
查看>>
“Info.plist” couldn’t be removed
查看>>
多线程day01
查看>>
react-native 模仿原生 实现下拉刷新/上拉加载更多(RefreshListView)
查看>>
MySQL出现Access denied for user ‘root’@’localhost’ (using password:YES)
查看>>
通过Roslyn构建自己的C#脚本(更新版)(转)
查看>>
红黑树
查看>>
UIImagePickerController拍照与摄像
查看>>