今天写个查询员工的信息的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. 用PLSQL Developer 查看Oracle的存储过程

    1 2.输入 3.具体存储过程

  2. 整理一些好用的css, javascript资源网站等

    CSS: CSS3信息:http://www.css3.info/ css3生成器:http://css3generator.com/ css3 cross brower生成器:http://css3 ...

  3. 第四章 栈与队列(a)栈接口与实现

  4. Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGSchedul

    在写Spark程序是遇到问题 Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.orgapacheapachesparksch ...

  5. turret

    turret - 必应词典 美['tʌrət]英['tʌrɪt] n.角楼:(战舰.飞机或坦克的)炮塔 网络塔楼:转塔:转台

  6. Win10 安装 Anaconda3 用 Anaconda3 安装TensorFlow 1.2 (只支持python3.5)

    Win10 安装 Anaconda3 1.安装Anaconda3 选择相应的Anaconda进行安装,下载地址点击这里,下载对应系统版本的Anaconda,官网现在的版本是Anaconda 4.3.1 ...

  7. Delphi:基于jcl的Bugsplat Crash收集单元

    //BugSplat Crash模拟.net数据封装 unit uBugSplat; interface uses Windows, SysUtils, Classes, StrUtils, Shel ...

  8. HBase数据库集群配置【转】

    https://www.cnblogs.com/ejiyuan/p/5591613.html HBase简介 HBase是Apache Hadoop中的一个子项目,是一个HBase是一个开源的.分布式 ...

  9. SQL Server 触发器 表的特定字段(一个字段)更新时,触发Update触发器

    CREATE TRIGGER [dbo].[Trg_Update_table1_column1]   on table1  after update  as  if update (column1)  ...

  10. select-options and range

    1.SELECT...WHERE ... IN ...,它后面跟着的是一个RANGE类型的内表,这种内表是通过RANGES或者SELECT-OPTIONS来定义的. 2.内表中包含四个字段:SIGN, ...