zoukankan      html  css  js  c++  java
  • OracleParameter 的使用(参数名要以:开头,不允许包含@等特殊字符)[转]

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

                        OracleCommand oracmd = oracon.CreateCommand();
                        oracmd.CommandText = "select gas_user_no,vol_page,user_name,user_address,unit from gas_meter where gas_user_no = :gas_userno";
                        if (!oracmd.Parameters.Contains("gas_userno"))
                        {
                            oracmd.Parameters.Add(new OracleParameter("gas_userno", OracleDbType.Varchar2, ParameterDirection.Input));
                        }
                        oracmd.Parameters["gas_userno"].Value = “666666”
                        OracleDataAdapter da = new OracleDataAdapter();
                        da.SelectCommand = oracmd;
                        DataTable dt = new DataTable();
                        da.Fill(dt);


                        OracleDataReader dr = oracmd.ExecuteReader();

    以下为转载内容:

    CommandType 属性设置为StoredProcedure 时,CommandText 属性应设置为存储过程的名称。如果存储过程名称包含任何特殊字符,则可能会要求用户使用转义符语法。当调用 Execute 方法之一时,该命令将执行此存储过程。

    用于 Oracle 的 .NET Framework 数据提供程序在向由CommandType.Text 的OracleCommand 调用的 SQL 语句传递参数时不支持问号 (?) 占位符。在这种情况下,必须使用命名的参数。例如:

     
    复制代码
     示例

    下面的示例创建一个 OracleCommand 并显示其参数。要完成此任务,请向该方法传递一个OracleConnection、一个查询字符串(它是 SQL SELECT 语句)和一个OracleParameter 对象数组。

        public void CreateOracleCommand(OracleConnection connection,
            string queryString, OracleParameter[] myParamArray)
        {
    
            OracleCommand command = new OracleCommand(queryString, connection);
            command.CommandText = 
                "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal";
    
            for (int j = 0; j < myParamArray.Length; j++)
                command.Parameters.Add(myParamArray[j]);
    
            string message = "";
    
            for (int i = 0; i < command.Parameters.Count; i++) 
                message += command.Parameters[i].ToString() + "
    ";
    
            Console.WriteLine(message);
    
            using (OracleDataReader row = command.ExecuteReader()) 
            {
                while(row.Read()) 
                {
                    Console.WriteLine(row.GetValue(0));
                }
            }
        }
  • 相关阅读:
    leetcode算法题基础(五)双指针(一)27 题 移除元素
    kata-shim: Setctty set but Ctty not valid in child: unknown.
    kata-runtime mount
    UVa1636 Headshot
    HDU1150 Machine Schedule
    POJ 1273 Drainage Ditches
    SPOJ GSS1 Can you answer these queries I
    POJ 1840 Eqs
    POJ2001 Shortest Prefixes
    HDU 2795 Billboard
  • 原文地址:https://www.cnblogs.com/jimcsharp/p/4832164.html
Copyright © 2011-2022 走看看