从NHibernate连接到ESRI形状文件(DBase*.dbf文件)
我一直在试图解决如何通过NHibernate连接到ESRI shape文件(我认为它是一个DBase表文件),但我所做的任何尝试都没有成功 目前,我的配置如下所示:从NHibernate连接到ESRI形状文件(DBase*.dbf文件),nhibernate,dbf,dbase,Nhibernate,Dbf,Dbase,我一直在试图解决如何通过NHibernate连接到ESRI shape文件(我认为它是一个DBase表文件),但我所做的任何尝试都没有成功 目前,我的配置如下所示: <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> <!--<property name="dialect">NHibernate.Dialect.Ge
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<!--<property name="dialect">NHibernate.Dialect.GenericDialect</property>
<property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
<property name="connection.connection_string">Database=A303.dbf;protocol=TCPIP</property>-->
<property name="connection.driver_class">NHibernate.Driver.OdbcDriver</property>
<!--<property name="connection.connection_string">driver={IBM DB2 ODBC DRIVER};Database=a303.dbf;protocol=TCPIP</property>-->
<property name="connection.connection_string">Provider=VFPOLEDB.1; Data Source=C:\projects\rm4\Sandbox\bin\Debug\A303.dbf;Extended Properties=dBase III</property>
<property name="dialect">NHibernate.Dialect.DB2Dialect</property>
<property name="use_outer_join">true</property>
<property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
<property name="show_sql">true</property>
NHibernate.Connection.DriverConnectionProvider
NHibernate.Driver.OdbcDriver
提供者=VFPOLEDB.1;数据源=C:\projects\rm4\Sandbox\bin\Debug\A303.dbf;扩展属性=数据库III
NHibernate.dial.DB2Dialect
真的
NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle
真的
我把注释掉的部分保留了下来,这样你就可以看到我一直在尝试的值。无论我尝试什么,我都会收到错误消息:
错误[IM002][Microsoft][ODBC驱动程序管理器]未找到数据源名称,且未指定默认驱动程序
我已经浏览了我在网上找到的大部分连接字符串,在这里的一些问题回答中,我进入了“抓住救命稻草”阶段,在这一阶段,我只是在插入任何东西,所以我认为我最好寻求帮助
我甚至不确定是否可以从NHibernate连接到这种类型的文件,但如果可以,有人知道配置中应该包含什么吗?我会尝试不同的NHibernate驱动程序。以下是文档中的列表 根据连接字符串中的提供者名称判断,我会尝试使用NHibernate.Driver.OleDbDriver
如果做不到这一点,我将从混合中删除NHibernate,并查看是否可以使用标准的.NET数据类进行连接,例如System.data.Odbc.OdbcConnection和System.data.OleDb.OleDbConnection。如果无法在此级别连接,则问题不在于NHibernate。我将尝试其他NHibernate驱动程序。以下是文档中的列表 根据连接字符串中的提供者名称判断,我会尝试使用NHibernate.Driver.OleDbDriver 如果做不到这一点,我将从混合中删除NHibernate,并查看是否可以使用标准的.NET数据类进行连接,例如System.data.Odbc.OdbcConnection和System.data.OleDb.OleDbConnection。如果无法在此级别进行连接,则问题不在于NHibernate。形状文件(.shp)本身不是dbf。它实际上是一个文件集合,其中一个是DBF,但存储几何体的shapefile本身的格式完全不同 ESRI网站(www.ESRI.com)上有一份白皮书形状文件(.shp)本身不是dbf。它实际上是一个文件集合,其中一个是DBF,但存储几何体的shapefile本身的格式完全不同
ESRI网站(www.ESRI.com)上有一份白皮书附带说明,shapefile属性表是以dBase格式存储的(不记得是dBase IV还是5,但其中之一),因此您应该能够使用任何可以读取dBase文件的db驱动程序来读取它们。大多数驱动程序都将一个目录作为“数据库”,然后该目录中的每个dbf文件都是数据库中的一个表。另一方面,shapefile属性表是以dBase格式存储的(不记得是dBase IV还是dBase 5,而是其中之一),因此您应该能够使用任何可以读取dBase文件的db驱动程序来读取它们。大多数驱动程序都让你指向一个目录作为“数据库”,然后该目录中的每个dbf文件都是数据库中的一个表。您好,很抱歉没有早点回复-没有收到关于回复的电子邮件。最后,我使用OleDb驱动程序直接连接到数据,效果很好。它在项目结束时的待办事项列表上,将其转换为NHibernate,因此我将尝试您的建议。谢谢。嗨,很抱歉没有及时回复-没有收到关于回复的电子邮件。最后,我使用OleDb驱动程序直接连接到数据,效果很好。它在项目结束时的待办事项列表上,将其转换为NHibernate,因此我将尝试您的建议。谢谢