Tag: oracle

如何在C#应用程序中设置TNSNAMES文件的正确路径?

这是我的问题:我在C#中使用ODP.NET dll的程序:oci.dll,ociw32.dll,Oracle.DataAccess.dll,orannzsbb11.dll,oraocci11.dll,oraociicus11.dll,OraOps11w.dll。 我有2台电脑。 首先安装整个ODAC包,然后安装第二个包。 但我在exe目录中都需要dll,所以ODAC不是问题(我认为)。 这些计算机之间的区别是TNSNAMES文件的路径。 第一个:C:\ app \ OraHome_1 \ Network \ admin \ Second:C:\ Oracle \ product \ 11.2.0 \ client_1 \ network \ admin 并在第一个CPU程序工作正常。 但是在具有相同连接字符串的第二个上,无法打开连接(ORA-12154)。 使用SQL Plus,我可以在两台计算机上连接。 那么,我怎样才能向我的节目展示TNSNAMES的正确路径?

ORA-01036:通过C#运行查询时的非法变量名称/编号

我试图在以下代码中使用C#中的OracleCommand对Oracle数据库使用ALTER USER查询。 如果Username和password的值不是空字符串,它将创建查询。 但是当执行ExecuteNonQuery()时,我收到错误”ORA-01036: illegal variable name/number” 。 string updateQuery = “ALTER USER :user IDENTIFIED BY :password”; connection = new OracleConnection(LoginPage.connectionString); connection.Open(); OracleCommand cmd = new OracleCommand(updateQuery, connection); cmd.Connection = connection; for(int i=0;i<usersList.Count;i++) { if (!(selectedUsersArray[i].Equals("")) && !passwordArray[i].Equals("")) { OracleParameter userName = new OracleParameter(); userName.ParameterName = "user"; userName.Value = selectedUsersArray[i]; OracleParameter passwd = new OracleParameter(); […]

无法从NHibernate.Driver.OracleDataClientDriver创建驱动程序

这是引发exception的代码: public static class NHibernateSessionManager { private static ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory(); public static ISession GetSession(string clientId) { if (ContextSession == null) ContextSession = sessionFactory.OpenSession(new OracleIntercerptor(clientId.ToUpper())); else ((OracleConnection)ContextSession.Connection).ClientId = clientId; return ContextSession; } // – snip – } 以及对引发exception的代码的调用: private ISession NHibernateSession { get { return NHibernateSessionManager.GetSession(SessionWrapper.GetUser()); } } 我得到一个TypeInitializationException {“’Sigaf.Presupuesto.EntidadesDAL.NHibernate.NHibernateSessionManager’的类型初始化程序引发了exception。”} 内在的例外 {“无法从NHibernate.Driver.OracleDataClientDriver创建驱动程序。”} 还有一些内在的例外情况让我想到了一个N​​RE: […]

为什么在C#时分号不能放在OracleCommand的CommandText中

为什么分号(’;’)在C#时无法放在OracleCommand的CommandText中 只是舔下面 string sql = “select * from table1;”; OracleCommand oc = new OracleCommand(sql , con); oc.CommandType = CommandType.Text; oc.ExecuteNonQuery(); 结果将是一个错误。 为什么? 谁能告诉我原因?

使用ODP.Net的问题

我已成功使用Oracle Database 11g第2版(11.2.0.1.0)从.Net连接oracle。 (参考Oracle.DataAccess.dll版本为2.112.1.0)。 但是当我安装ODP.NET并且当我尝试连接到oracle时,它给了我一个错误:“ORA-12154:TNS:无法解析指定的连接标识符”。 我怎么解决这个问题? 谢谢!

DbCommand和参数化SQL,ORACLE vs SQL Server

我有一个应用程序,除其他外,将各种数据存储到数据库中。 数据库可能是ORACLE或SQL Server。 SQL是根据执行期间获取的配置和值动态创建的。 通过使用DbProviderFactory,我的db方法可以使用ORACLE或SQL Server,而无需为任何数据库编写自定义代码,除了一件事; 参数/绑定变量。 对于ORACLE,我需要使用”:ParameterName”而对于SQL Server,我需要使用”@ParameterName” 。 有没有办法让这个通用? 示例代码: public class DbOperations { private DbProviderFactory m_factory; private DbConnection m_CN; … private void InsertToDb(ValueType[] values, ColumnType[] columns) { DbCommand Cmd = m_factory.CreateCommand(); Cmd.Connection = m_CN; StringBuilder sql = new StringBuilder(); sql.Append(“INSERT INTO “); sql.Append(DestinationTable); sql.Append(” (“); for (int i = 0; i < […]

如何用oracle数据库中的C#填充数据集

我正在尝试填充oracle数据集== NULL; 我正在使用带有C#的.net框架2.0

N-Hibernate与Oracle中的长字符串会导致错误

我使用oracle作为db和流利的Nhibernate进行映射。 下面是我的对象类 public class UserFieldEvent { public virtual int Id { get; set; } public virtual UserFieldBase UserField { get; set; } public virtual EventType EventType { get; set; } public virtual string EventScript { get; set; } } EventScript的长度可以是0到4000.在数据库中,我将EventScript的列类型设置为CLOB。 下面是我的映射类: public UserFieldEventMap() { Table(“TBLDS_USERFIELDEVENT”); Id(x => x.Id).GeneratedBy.Sequence(“SEQDS_USERFIELDEVENT”); Map(x => x.EventType).CustomType(); Map(x => x.EventScript).CustomSqlType(“CLOB”); References(x […]

在升级到VS 2010 / .NET 4.0后,Membership.ValidateUser始终返回false

不确定这是属于VS 2010还是升级后的框架,但是……我们正在使用Oracle成员资格提供程序来validation用户身份。 在升级之前一切正常,但现在尽管有效凭据Membership.ValidateUser(user, password)返回false 。 没有exception抛出,因此很难确定问题可能是什么。 VS 2010中的网站管理工具仍然能够管理用户和角色(或多或少),因此我没有理由质疑连接。 问题可能是什么?

无法在.Net应用程序中使用/显示Oracle数据库中的特殊字符

我有一个C#.Net应用程序,它访问来自Oracle 10 db支持的商业应用程序的数据。 商业应用程序数据库中的几个字段(声明为varchar2(n))包含特殊字符。 例如,“智能报价”撇号。 商业客户端应用程序正确显示这些字符,但我的应用程序将它们显示为反向问号。 Oracle字符集是“WE8ISO8859P1”。 我的应用程序使用System.Data.OracleClient.OracleDataAdapter读取商业数据库,通过DataSet.Tables转换为表。 将表格转换为对象,并将相关字段存储为字符串。 如果我在从数据库中读取数据后立即检查(在调试器中)数据,并且特殊字符已经错误地显示。 我无法弄清楚如何将数据作为hex字节来检查,看看它到底有什么,我也不确定我应该寻找什么。 我还注意到Toad也将字符显示为倒置问号。 我们应用程序的一个方面是将这些记录写入我们自己的数据库中的单独表中; 当发生这种情况时,特殊字符会被修改,然后显示为方框而不是倒置的问号。 如果需要,我可以提供更多信息。 感谢您的帮助!