[ASP.NET]使用Oracle.ManagedDataAccess的OracleParameter参数化和OracleDataAdapter模糊查询
今天写个查询员工的信息的demo遇到了2个问题
问题1.使用Oracle.ManagedDataAccess的OracleParameter参数化
OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)
在使用OracleParameters时,CommandText 中的参数要以":"开头,不能包含@等特殊字符。而在其它地方引用到此参数时可以不必加上":",程序会自动为其加上":"
cmdStr = "select * from sys_user_info where user_no = :userno or user_no = :usernoleave";
pars = new OracleParameter[]{
new OracleParameter("userno",OracleDbType.Varchar2,),
new OracleParameter("usernoleave",OracleDbType.Varchar2,),
};
pars[].Value = TextBox1.Text.Trim();
pars[].Direction = ParameterDirection.InputOutput;
pars[].Value = "#" + TextBox1.Text.Trim() + "#";
pars[].Direction = ParameterDirection.InputOutput;
参考下 OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)
问题2.OracleDataAdapter模糊查询
cmdStr = "select * from newmes.sys_user_info where user_no like '%'||:usernoleave||'%'";
cmdStr = "select * from newmes.sys_user_info where user_no like :usernoleave";
pars = new OracleParameter[]{
new OracleParameter("usernoleave",OracleDbType.Varchar2,),
};
pars[].Value = "%"+TextBox1.Text.Trim()+"%";
整个Demo的代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
string ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnString"].ConnectionString;
string cmdStr = string.Empty;
OracleParameter[] pars;
if (!CheckBox1.Checked)
{
cmdStr = "select * from sys_user_info where user_no = :userno or user_no = :usernoleave";
pars = new OracleParameter[]{
new OracleParameter("userno",OracleDbType.Varchar2,),
new OracleParameter("usernoleave",OracleDbType.Varchar2,),
};
pars[].Value = TextBox1.Text.Trim();
pars[].Direction = ParameterDirection.InputOutput;
pars[].Value = "#" + TextBox1.Text.Trim() + "#";
pars[].Direction = ParameterDirection.InputOutput;
}
else
{
cmdStr = "select * from newmes.sys_user_info where user_no like '%'||:usernoleave||'%'";
pars = new OracleParameter[]{
new OracleParameter("usernoleave",OracleDbType.Varchar2,),
};
pars[].Value = TextBox1.Text.Trim();
pars[].Direction = ParameterDirection.InputOutput;
}
try
{
DataTable ds = new DataTable();
if (TextBox1.Text.Trim().Equals(""))
{
throw new Exception("请输入工号");
}
using (OracleConnection con = new OracleConnection(ConnStr))
{
using (OracleDataAdapter oda = new OracleDataAdapter(cmdStr, con))
{ oda.SelectCommand.Parameters.AddRange(pars);
oda.SelectCommand.CommandType = CommandType.Text;
oda.Fill(ds);
}
}
if (ds.Rows.Count>)
{
lblMessage.Text = ds.Rows.Count+"pcs data";
lblMessage.ForeColor = System.Drawing.Color.Red;
GridView1.DataSource = ds;
GridView1.DataBind();
}
else
{
lblMessage.Text = "No Data";
lblMessage.ForeColor = System.Drawing.Color.Red;
} }
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "');</script>");
GridView1.DataSource = null;
GridView1.DataBind();
lblMessage.Text = "";
}
}
[ASP.NET]使用Oracle.ManagedDataAccess的OracleParameter参数化和OracleDataAdapter模糊查询的更多相关文章
- IBatisNet+Oracle.ManagedDataAccess打造无需安装oracle客户端和ODP即可连接oracle数据库
库环境: Oracle.ManagedDataAccess 版本:4.122.1.0 IBatisNet 版本:1.6.2 其实很简单的,只需在驱动配置那里添加上Oracle.ManagedData ...
- ASP.NET操作Oracle知识记录(采用ODP.NET)
最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...
- ASP.NET操作ORACLE数据库之模糊查询
ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...
- C#使用Oracle.ManagedDataAccess.dll
在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了.在那时没有ODP.NET,但visual studio却对Oralce数据库的调用 ...
- C# Oracle.ManagedDataAccess 批量更新表数据
这是我第一次发表博客.以前经常到博客园查找相关技术和代码,今天在写一段小程序时出现了问题, 但在网上没能找到理想的解决方法.故注册了博客园,想与新手分享(因为本人也不是什么高手). vb.net和C# ...
- 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库
在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...
- C#工具类OracleHelper,基于Oracle.ManagedDataAccess.Client封装
基于Oracle.ManagedDataAccess.Client封装的Oracle工具类OracleHelper,代码如下: using System; using System.Data; usi ...
- (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库
原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...
- C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库
在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了.在那时没有ODP.NET,但visual studio却对Oralce数据库的调用 ...
随机推荐
- jumpserver-1.4.0.2
关闭防火墙和selinux IP:192.168.199.115 一. 准备 Python3 和 Python 虚拟环境 yum -y install wget sqlite-devel xz gcc ...
- Linux服务器安装配置Nginx服务器
Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务 ...
- vue的双向数据绑定实现原理
在目前的前端面试中,vue的双向数据绑定已经成为了一个非常容易考到的点,即使不能当场写出来,至少也要能说出原理.本篇文章中我将会仿照vue写一个双向数据绑定的实例,名字就叫myVue吧.结合注释,希望 ...
- FortiGate基本信息
1.介绍 FortiGate是全新的下一代防火墙,在整个硬件架构和系统上面都有新的设计,在性能和功能上面都有了很大提升,具有性能高.接口丰富.功能齐全.安全路由交换一体化.性价比高等优势. Forti ...
- 【C】C语言中的_exit()与exit()
_exit()和exit()主要区别是一个退出进程会清理I/O缓冲区,一个直接结束进程进入到内核中. 举例说明: #include <stdio.h> /*demo01 程序只输出 hel ...
- 用django实现一个资产管理的系统
整个页面的效果如下图所示 1.登陆注册页面 2.注册的页面 3.登陆页面 4.所有设备 5.正常设备页面 6.退库设备页面 7.丢失设备页面 8.导出设备的页面,仅仅在所有设备页面才支持导出按钮 9. ...
- selenium模拟事件处理
执行原理: 调用ActionChains的方法时不会立即执行,会将所有的操作按顺序存放在一个队列里,当调用perform()方法时,从队列中的事件会依次执行. 支持链式写法或者是分布写法. 鼠标键盘方 ...
- sqlserver判断字段是否存在更改字段
use naire go if COL_LENGTH('options','optionsGroup') is null begin--options为表名,optionsGroup为列名 alter ...
- eclipse下创建maven项目并部署到tomcat服务器(转)
maven项目部署到服务器有很多方法,可以利用jetty-maven-plugin或者tomcat-maven-plugin,这属于maven的知识点. 通常开发中,需要将项目放在服务器上借助开发工具 ...
- Bootstrap(4) 表单和图片
1.表单 基本格式,实现基本的表单样式 <form class="form-horizontal"> <div class="form-group&qu ...