zoukankan      html  css  js  c++  java
  • [ASP.NET]使用Oracle.ManagedDataAccess的OracleParameter参数化和OracleDataAdapter模糊查询

    今天写个查询员工的信息的demo遇到了2个问题

    问题1.使用Oracle.ManagedDataAccess的OracleParameter参数化

    OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符) 

    在使用OracleParameters时,CommandText 中的参数要以":"开头,不能包含@等特殊字符。而在其它地方引用到此参数时可以不必加上":",程序会自动为其加上":"

    1             cmdStr = "select * from sys_user_info where user_no = :userno or user_no = :usernoleave";
    2             pars = new OracleParameter[]{
    3             new OracleParameter("userno",OracleDbType.Varchar2,10),
    4             new OracleParameter("usernoleave",OracleDbType.Varchar2,10),
    5         };
    6             pars[0].Value = TextBox1.Text.Trim();
    7             pars[0].Direction = ParameterDirection.InputOutput;
    8             pars[1].Value = "#" + TextBox1.Text.Trim() + "#";
    9             pars[1].Direction = ParameterDirection.InputOutput;

    参考下 OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)

    问题2.OracleDataAdapter模糊查询

    1   cmdStr = "select * from newmes.sys_user_info where user_no like '%'||:usernoleave||'%'";
    1             cmdStr = "select * from newmes.sys_user_info where user_no like :usernoleave";
    2             pars = new OracleParameter[]{
    3                 new OracleParameter("usernoleave",OracleDbType.Varchar2,10),
    4             };
    5             pars[0].Value = "%"+TextBox1.Text.Trim()+"%";

    整个Demo的代码如下:

     1    protected void Button1_Click(object sender, EventArgs e)
     2     {
     3         string ConnStr = System.Configuration.ConfigurationManager.ConnectionStrings["OracleConnString"].ConnectionString;
     4         string cmdStr = string.Empty;
     5         OracleParameter[] pars;        
     6         if (!CheckBox1.Checked)
     7         {
     8             cmdStr = "select * from sys_user_info where user_no = :userno or user_no = :usernoleave";
     9             pars = new OracleParameter[]{
    10             new OracleParameter("userno",OracleDbType.Varchar2,10),
    11             new OracleParameter("usernoleave",OracleDbType.Varchar2,10),
    12         };
    13             pars[0].Value = TextBox1.Text.Trim();
    14             pars[0].Direction = ParameterDirection.InputOutput;
    15             pars[1].Value = "#" + TextBox1.Text.Trim() + "#";
    16             pars[1].Direction = ParameterDirection.InputOutput;
    17         }
    18         else
    19         {
    20             cmdStr = "select * from newmes.sys_user_info where user_no like '%'||:usernoleave||'%'";
    21             pars = new OracleParameter[]{
    22                 new OracleParameter("usernoleave",OracleDbType.Varchar2,10),
    23             };
    24             pars[0].Value = TextBox1.Text.Trim();
    25             pars[0].Direction = ParameterDirection.InputOutput;
    26         }
    27         try
    28         {
    29             DataTable ds = new DataTable();
    30             if (TextBox1.Text.Trim().Equals(""))
    31             {
    32                 throw new Exception("请输入工号");
    33             }
    34             using (OracleConnection con = new OracleConnection(ConnStr))
    35             {
    36                 using (OracleDataAdapter oda = new OracleDataAdapter(cmdStr, con))
    37                 {
    38                     
    39                     oda.SelectCommand.Parameters.AddRange(pars);
    40                     oda.SelectCommand.CommandType = CommandType.Text;                   
    41                     oda.Fill(ds);
    42                 }
    43             }
    44             if (ds.Rows.Count>0)
    45             {
    46                 lblMessage.Text = ds.Rows.Count+"pcs data";
    47                 lblMessage.ForeColor = System.Drawing.Color.Red;
    48                 GridView1.DataSource = ds;
    49                 GridView1.DataBind();
    50             }
    51             else
    52             {
    53                 lblMessage.Text = "No Data";
    54                 lblMessage.ForeColor = System.Drawing.Color.Red;
    55             }
    56 
    57         }
    58         catch (Exception ex)
    59         {
    60             Response.Write("<script>alert('" + ex.Message + "');</script>");
    61             GridView1.DataSource = null;
    62             GridView1.DataBind();
    63             lblMessage.Text = "";
    64         }
    65     }
  • 相关阅读:
    转:Intellij idea创建javaWeb以及Servlet简单实现
    IntelliJ IDEA控制台启动Tomcat输出中文乱码问题
    Tomcat 输出日志出现中文乱码
    转:Java Web 项目发布到Tomcat中三种部署方法
    运行tomcat7w.exe提示指定的服务未安装 解决办法
    (转)ASP.NET MVC:Razor 引入命名空间
    (转)解决WinDbg调试Dump文件不同环境mscordacwks.dll版本问题
    svn移动目录时如何保留原来的日志
    Memcached 教程
    最近帮朋友写了一个百度竞价关键词快速分词(分组)工具,支持与或逻辑分组,附源码和工具下载链接
  • 原文地址:https://www.cnblogs.com/masonlu/p/7597371.html
Copyright © 2011-2022 走看看