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

原创 2012年03月21日 15:59:54
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.TextOracleCommand 调用的 SQL 语句传递参数时不支持问号 (?) 占位符。在这种情况下,必须使用命名的参数。例如:

复制代码
SELECT * FROM Customers WHERE CustomerID = :pCustomerID

CommandType.TextOracleCommand 调用的 SQL 语句中使用命名的参数时,参数名前面必须有一个冒号 (:)。但是,在存储过程或在代码的其他地方引用命名的参数时(例如,将OracleParameter 对象添加到Parameters 属性时),请不要在命名的参数前加上冒号 (:)。Oracle .NET Framework 数据提供程序会自动提供冒号。

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

 
Visual Basic
复制代码
Public Sub CreateOracleCommand(ByVal connection As OracleConnection, _
ByVal queryString As String, ByVal prmArray() As OracleParameter)

    Dim command As New OracleCommand(queryString, connection)
    command.CommandText = _
        "SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal"

    Dim j As Integer
    For j = 0 To prmArray.Length - 1
        command.Parameters.Add(prmArray(j))
    Next j

    Dim message As String = ""
    Dim i As Integer
    For i = 0 To command.Parameters.Count - 1
        message += command.Parameters(i).ToString() + ControlChars.Cr
    Next i

    Console.WriteLine(message)

    Dim reader As OracleDataReader = command.ExecuteReader
    While reader.Read
        Console.WriteLine(reader.GetValue(0))
    End While

End Sub
C#
复制代码
    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() + "\n";

        Console.WriteLine(message);

        using (OracleDataReader row = command.ExecuteReader()) 
        {
            while(row.Read()) 
            {
                Console.WriteLine(row.GetValue(0));
            }
        }
    }

.NET Framework

受以下版本支持:4、3.5、3.0、2.0、1.1

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C# VS2010中,用微软自带的System.Data.OracleClient来连接Oracle数据库

由于微软在.Net框架4.0中已经决定撤销使用System.Data.OracleClient,造成在VS2010中无法连接Oracle数据库,但它还依旧存在于.Net架构中,我们可以通过自己引用 ...
  • iloli
  • iloli
  • 2012-02-09 16:42
  • 22857

正则表达式匹配

在论坛里经常看到正则表达式匹配的匹配问题,有一些好帖子分享下。http://topic.csdn.net/u/20090527/14/fc6222d4-d015-4fce-a386-0931c1a58...
  • wuyq11
  • wuyq11
  • 2009-05-28 09:02
  • 4494

Oracle 关于 alter parameter 的设置 详解

今天主要学习了下set parameter 的参数:    To see the file location: SQL>  show parameter dump;   NAME     ...

动态添加OracleParameter 参数

动态添加OracleParameter 参数  List ilistStr = new List();  ilistStr.Add(OracleHelper.MakeInPar...

.NET中使用ORACLE函数和过程并输出参数(1)

Technorati 标签: .net,ADO.NET,oracle,DBHELPERORA 我们知道.NET中调用ORACLE 的过程没有调用MS-SQLSERVER中的存储过程那么方便,尤其用到参...

OracleCommand 参数不会自动匹配

使用Oracle的Oracle.DataAccess.dll的时候,在OracleCommand的commandtext加了一个参数,原以为参数是根据名字自动匹配的,后来发现默认是按顺序的。 如果需...

博客搬家

之前新开了一个个人博客,计划将博客有价值内容搬迁到个人博客中,另外以后所有文章首发均在个人博客中,之后会搬运到CSDN。个人博客地址:http://www.gcssloop.com/#blog 关注本...

hibernate hql语句中条件参数中包含特殊字符单引号' 的处理办法

在我们编写hql语句的时候,where条件中的参数两端常常会加上”’”单引号,一般情况下是没有问题的,但是如果参数中包含单引号呢,例如一家公司的名称“CompagnieFrancaised’Etude...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)