今天写个查询员工的信息的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模糊查询的更多相关文章

  1. IBatisNet+Oracle.ManagedDataAccess打造无需安装oracle客户端和ODP即可连接oracle数据库

    库环境: Oracle.ManagedDataAccess 版本:4.122.1.0 IBatisNet  版本:1.6.2 其实很简单的,只需在驱动配置那里添加上Oracle.ManagedData ...

  2. ASP.NET操作Oracle知识记录(采用ODP.NET)

    最近因为要把以前做的一个项目数据库从MSSQL2005转移到Oracle上,所以开始接触Oracle,通过本篇随笔简单记录一些ASP.NET结合Oralce的操作: 因为微软未来不再支持 System ...

  3. ASP.NET操作ORACLE数据库之模糊查询

    ASP.NET操作ORACLE数据库之模糊查询 一.ASP.NET MVC利用OracleHelper辅助类操作ORACLE数据库 //连接Oracle数据库的连接字符串 string connect ...

  4. C#使用Oracle.ManagedDataAccess.dll

    在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了.在那时没有ODP.NET,但visual studio却对Oralce数据库的调用 ...

  5. C# Oracle.ManagedDataAccess 批量更新表数据

    这是我第一次发表博客.以前经常到博客园查找相关技术和代码,今天在写一段小程序时出现了问题, 但在网上没能找到理想的解决方法.故注册了博客园,想与新手分享(因为本人也不是什么高手). vb.net和C# ...

  6. 在开发框架中扩展微软企业库,支持使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库

    在前面随笔<在代码生成工具Database2Sharp中使用ODP.NET(Oracle.ManagedDataAccess.dll)访问Oracle数据库,实现免安装Oracle客户端,兼容3 ...

  7. C#工具类OracleHelper,基于Oracle.ManagedDataAccess.Client封装

    基于Oracle.ManagedDataAccess.Client封装的Oracle工具类OracleHelper,代码如下: using System; using System.Data; usi ...

  8. (转) C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库

    原贴链接:https://www.cnblogs.com/mq0036/p/11052359.html C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracl ...

  9. C#使用ODP.NET(Oracle.ManagedDataAccess.dll)操作Oracle数据库

    在刚接触C#的时候由于公司使用的就是Oracle数据库,那么C#怎么连接Oracle数据库就成了首要去掌握的知识点了.在那时没有ODP.NET,但visual studio却对Oralce数据库的调用 ...

随机推荐

  1. 安卓下H5弹窗display:table的bug

    表单以弹窗的形式弹出时,若设置了表单的div:display:table下,安卓打开页面输入法的时候,表单顶到屏幕顶部之后,再也无法上滑,键盘遮住了下面的输入框.在ios下,一切显示正常,因为iOS会 ...

  2. centos7.2 +cloudstack 4.11 +KVM +ceph 安装配置(网卡带聚合)

    系统安装,注意:管理节点版本是有要求的,配置为centos 7.2 最小安装版本(非最小化安装). 系统分区要求 /boot/efi 200MB / 100G /var 100G swap 0 其它给 ...

  3. vue confirm确认

    this.$confirm('您确定删除吗?').then(_ => { do something ... (确认) }).catch(_ => { do something ... (取 ...

  4. 弹出序列(python)

    题目描述 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压 ...

  5. CentOS 端口映射

    一个合作单位给我创建了十几台虚拟服务器做支撑.但是只给负载均衡绑定了公网IP.由于这个支撑的服务需要测试和调优,经常要往服务器上传class或者修改数据库.为了方便操作,我打算在负载均衡服务器上做端口 ...

  6. XMPP openfire Smack 即时通讯

    重新整理下这篇文章. 这篇文章的主要任务是使用AndroidStudio,通过Openfire,利用XMPP协议完成一个可以即时通讯.拥有好友系统的聊天软件. 一.服务器配置与相关库 理论不多说,只谈 ...

  7. Quagga的安装和使用

    Quagga的安装和使用 测试环境:VM 12   CentOS 6.5 64位 Quagga是一款功能比较强大的开源路由软件,支持rip, ospf,bgp等协议. 1.       Quagga的 ...

  8. js和jquery实现图片无缝轮播的不同写法

    多掌握一种方法总是会有好处的,学习编程就要多思考,举一反三 下面写一下实现图片自动播放的代码,由于学习的是javascript,代码量很大,所以又学习了jquery库的操作,非常简便 还有非常有逼格的 ...

  9. Sangfor_AC用户不在线但在“在线用户管理”里有显示

    现象:用户实际不在线,但是在“在线用户管理”里有看到,而且在线时间很长. 分析:用户通过IP上线以后,只要IP地址在线或者下线时间不超过“无流量自动注销的时间”,那么就会显示到“在线用户管理”里. 而 ...

  10. 43-将javaweb项目部署到Linux服务器

    这是第二次弄了,感觉由于上次积累了点资源,这次要少走很多弯路了,再次记录下来吧. 第一次的记录:将本地的javaweb项目部署到Linux服务器的一般操作 1. 在Linux上建立数据库,我是将本地的 ...