[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数据库的调用 ...
随机推荐
- Pandas之数据结构
pandas入门 由于最近公司要求做数据分析,pandas每天必用,只能先跳过numpy的学习,先学习大Pandas库 Pandas是基于Numpy构建的,让以Numpy为中心的应用变得更加简单 pa ...
- 【OpenGL】纹理(Texture)
纹理是一个2D图片(也有1D和3D),它用来添加物体的细节:这就像有一张绘有砖块的图片贴到你的3D的房子上,你的房子看起来就有了一个砖墙.因为我们可以在一张图片上插入足够多的细节,这样物体就会拥有很多 ...
- overflow属性的用法
<style type="text/css">div{ background-color:#00FFFF; width:150px; height:150px; ove ...
- CSS垂直翻转/水平翻转提高web页面资源重用性
/*水平翻转*/ .flipx { -moz-transform:scaleX(-1); -webkit-transform:scaleX(-1); ...
- 第三章 列表(d)选择排序
- django的优缺点(非原创)
Django 大包大揽,用它来快速开发一些 Web 应用是不错的.如果你顺着 Django 的设计哲学来,你会觉得 Django 很好用,越用越顺手:相反,你如果不能融入或接受 Django 的设计哲 ...
- QT各模块
基本模块: QT core QT gui QT widgets QT multimedia QT webkit 浏览器引擎 QT network QT sql QT test 单元测试 QT webv ...
- 交叉编译libudev
一.交叉编译libudev下载udev-182.tar.xz 下载网址:https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/ ...
- ASP.Net各个命名空间及作用
(引用自hungerw的博客) 命名空间 描述 Microsoft.CSharp 支持C#语言编译和生成代码 System 包含了基 ...
- sqljdbc4.jar的安装
自己项目环境(idea+jdk1.8+tomcat8),在搭建maven项目时,由于本地数据库是使用了sqlserver,所以需要项目与sqlserver之间建立连接,但是网上查的资料都说微软不允许以 ...