关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
2012-01-29 12:49
816 查看
using Oracle.DataAccess.Client;
public static String ConnectionString = "Data Source=orcl;User ID=hr;Password=hr;";
public static int Update(MacInfo model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update MacInfo set ");
strSql.Append("Mac_Address=:Mac_Address,");
strSql.Append("Mac_Status=:Mac_Status");
strSql.Append(" where MacInfo_ID=:MacInfo_ID");
//strSql.Append("Mac_Address='"+model.Mac_Address+"',");//拼凑Update字符串是可以执行成功的
//strSql.Append("Mac_Status="+model.Mac_Status);
//strSql.Append(" where MacInfo_ID='"+model.MacInfo_ID+"'");
//这里注意,strSql中的Update语句参数顺序为:Mac_Address、Mac_Status、MacInfo_ID,所以下面OracleParameter
//也必须按这个顺序来声明、赋值
OracleParameter[] parameters = {
new OracleParameter(":Mac_Address", OracleDbType.Varchar2,17),
new OracleParameter(":Mac_Status", OracleDbType.Int32,4),
new OracleParameter(":MacInfo_ID", OracleDbType.Varchar2,17)};
parameters[0].Value = model.Mac_Address;
parameters[1].Value = model.Mac_Status.ToString();
parameters[2].Value = model.MacInfo_ID;
int result = ExecuteCommand(strSql.ToString(), CommandType.Text,parameters);
return result;
}
public static int ExecuteCommand(string queryString, CommandType commandType, params OracleParameter[] param)
{
int flag = 0;
using(OracleConnection con = new OracleConnection(ConnectionString))
{
OracleCommand command = new OracleCommand(queryString, con);
command.CommandType = commandType;
if(param != null)
{
for(int i = 0; i < param.Length; i++)
{
command.Parameters.Add(param[i]);
}
}
try
{
command.Connection.Open();
flag = command.ExecuteNonQuery();
}
catch(Exception ex)
{
throw ex;
}
finally
{
command.Connection.Close();
command.Dispose();
command = null;
}
}
return flag;
}
public static String ConnectionString = "Data Source=orcl;User ID=hr;Password=hr;";
public static int Update(MacInfo model)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("update MacInfo set ");
strSql.Append("Mac_Address=:Mac_Address,");
strSql.Append("Mac_Status=:Mac_Status");
strSql.Append(" where MacInfo_ID=:MacInfo_ID");
//strSql.Append("Mac_Address='"+model.Mac_Address+"',");//拼凑Update字符串是可以执行成功的
//strSql.Append("Mac_Status="+model.Mac_Status);
//strSql.Append(" where MacInfo_ID='"+model.MacInfo_ID+"'");
//这里注意,strSql中的Update语句参数顺序为:Mac_Address、Mac_Status、MacInfo_ID,所以下面OracleParameter
//也必须按这个顺序来声明、赋值
OracleParameter[] parameters = {
new OracleParameter(":Mac_Address", OracleDbType.Varchar2,17),
new OracleParameter(":Mac_Status", OracleDbType.Int32,4),
new OracleParameter(":MacInfo_ID", OracleDbType.Varchar2,17)};
parameters[0].Value = model.Mac_Address;
parameters[1].Value = model.Mac_Status.ToString();
parameters[2].Value = model.MacInfo_ID;
int result = ExecuteCommand(strSql.ToString(), CommandType.Text,parameters);
return result;
}
public static int ExecuteCommand(string queryString, CommandType commandType, params OracleParameter[] param)
{
int flag = 0;
using(OracleConnection con = new OracleConnection(ConnectionString))
{
OracleCommand command = new OracleCommand(queryString, con);
command.CommandType = commandType;
if(param != null)
{
for(int i = 0; i < param.Length; i++)
{
command.Parameters.Add(param[i]);
}
}
try
{
command.Connection.Open();
flag = command.ExecuteNonQuery();
}
catch(Exception ex)
{
throw ex;
}
finally
{
command.Connection.Close();
command.Dispose();
command = null;
}
}
return flag;
}
相关文章推荐
- 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
- [ASP.NET]使用Oracle.ManagedDataAccess的OracleParameter参数化和OracleDataAdapter模糊查询
- Asp.net using Oracle.DataAccess.dll access oracle 11g 64bit & x86
- asp.net中 使用参数化mysqlparameter 保存数据时,总保存成一个汉字的解决方案。
- 64位系统IIS使用32位Oracle.DataAccess解决方案
- Oracle.ManagedDataAccessDTC.dll 使用
- 关于Asp.Net MVC 中 UpdateModel 的未能更新***模型的 解决方案!
- Linq to Oracle 使用教程(十二)使用其它的版本的 Oracle.DataAccess.dll
- [转] 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
- ASP.net连接mysql数据库(使用MySql.Data.dll)
- asp.net mvc 中[Authorize]在IE9以上版本关于FormsAuthentication.SetAuthCookie无效的问题 解决方案
- 【ODP.NET 日期】 在使用Oracle ODP.NET执行Update时提示ORA-00932 和 ORA-01843
- 关于ASP.NET中由于无法创建应用程序域,因此未能执行请求解决方案
- 关于使用Asp.net导出Excel,遭遇“LinkButton必须放在一个具有runat=server的标签的Form”的解决方案。
- 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许使用无法序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“Custom”模式下执行了类似的序列化,则适用同样的限制。”的问题
- Socut.Data.dll - ASP.Net数据库(Access或SQL Server)连接操作类
- ASP.NET C# 無法載入檔案或組件 Oracle.DataAccess
- 关于Asp.Net MVC 中 UpdateModel 的未能更新***模型的 解决方案!
- asp.net,关于Listview+DataPager控件使用
- Nhibernate 链接Oracle10g 使用Oracle.DataAccess