使用ASP.NET连接到导航

时间:2013-07-17 07:00:11

标签: asp.net odbc navision

您好任何人都可以告诉我,如何使用ASP.NET连接Navision。 这是我在Web.Config中设置的连接字符串

<connectionStrings>
<add name="Navision" connectionString="dsn=TEST;uid=user1;pwd=paswd;database=Test;CompanyName=HHT Test;" />
</connectionStrings>

但是当我尝试连接时,我收到了这个错误:

System.Data.Odbc.OdbcException: ERROR [S1000] [Simba][SimbaEngine ODBC Driver]
[DRM File Library] The operating system returned the error (183):Cannot create 
a file when that file already exists.

Error: 183
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [01S00] [Simba][SimbaEngine ODBC Driver]Invalid connection string attribute.
ERROR [01000] [Microsoft][ODBC Driver Manager] The driver doesn't support the
version of ODBC behavior that the application requested (see SQLSetEnvAttr).
at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, 
OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, 
OdbcConnectionString connectionOptions)
at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, 
Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, 
DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, 
DbConnectionFactory connectionFactory)
at System.Data.Odbc.OdbcConnection.Open()
at Service.Getdataset(String SqlStr)

我正在使用 Navision 4.0 SP3 和相同的ODBC驱动程序。

2 个答案:

答案 0 :(得分:1)

ERROR [01S00] [Simba][SimbaEngine ODBC Driver]Invalid connection string attribute. prob意味着您无法在连接字符串中使用CompanyName。 ODBC驱动程序根本不知道Navision中的公司意味着什么(没有一个驱动程序知道tbh;))。

如果您确定要使用ODBC访问Nav,则必须手动处理与不同公司的交互。

还有一件事。你现在的方式,你只连接到SQL Server,而不是Nav(它是不同的东西)。因此,如果这是你的目标,那么使用System.Data.SqlClient。

如果要使用其所有业务逻辑等连接到Nav,则需要使用其他集成选项。如文件交换,tcp监听器,MSMQ等。不是说网络服务。

答案 1 :(得分:-1)

问题在于公司名称。 在我看来当然。当我通过REST连接导航到Windows Phone应用程序时,我一直在使用Odata,以下是公司名称的示例:

  

http://addres/OData/Company( 'CRONUS%20%C3%86%C3%98%C3%85%20Company')/”