zoukankan      html  css  js  c++  java
  • 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一

    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.     }  
  • 相关阅读:
    MySQL-keepalived做高可用
    Linux-服务管理
    MySQL-CentOS7上安装Mysql5.7
    MySQL-查看DB文件位置
    游戏编程与游戏种类
    计算机
    python
    python中的构造函数
    IndentationError:expected an indented block错误解决
    python程序的pdb调试方法
  • 原文地址:https://www.cnblogs.com/top5/p/2331024.html
Copyright © 2011-2022 走看看