1

嗨,任何人都可以告诉我,如何使用 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 驱动程序。

4

2 回答 2

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等等。不是说网络服务。

于 2013-09-09T10:56:44.467 回答
-1

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

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

于 2016-08-27T15:13:37.030 回答