采用的是vs2005,nhibernate版本为2.1.0.1002,hibernate.cfg.xml中配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
<property name="connection.connection_string">
Data Source=otec_192.168.0.249;User ID=userid;Password=psw;
</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">false</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping assembly="OraTest"/>
</session-factory>
</hibernate-configuration>运行代码如下:
if (session == null)
{
session = DataAccessUtil.NHibernateUtil.OpenSession();
}
query = session.CreateQuery(" from CUser");
queryList = query.List();
执行时总是提示“ORA-12154: TNS: 无法解析指定的连接标识符”;请帮忙看下问题出现在哪里。不胜感激
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" >
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
<property name="connection.connection_string">
Data Source=otec_192.168.0.249;User ID=userid;Password=psw;
</property>
<property name="adonet.batch_size">10</property>
<property name="show_sql">false</property>
<property name="use_outer_join">true</property>
<property name="command_timeout">60</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<mapping assembly="OraTest"/>
</session-factory>
</hibernate-configuration>运行代码如下:
if (session == null)
{
session = DataAccessUtil.NHibernateUtil.OpenSession();
}
query = session.CreateQuery(" from CUser");
queryList = query.List();
执行时总是提示“ORA-12154: TNS: 无法解析指定的连接标识符”;请帮忙看下问题出现在哪里。不胜感激
这个在oracle里面做了配置吗?
找到oracle的安装目录
oracle\ora90\network\ADMIN\tnsnames.ora
打开
增加这样的
otec =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.249)(PORT = 1521))
)
(CONNECT_DATA =
(SID = qidian)
)
)
连接的时候,data source直接写otec就可以了