我对DynamicDatabaseFactory不太熟悉,那里没有很多信息。我正在对站点进行更改,而我只是想使其在我的开发计算机上运行,而我遇到了这个问题,该行:DynamicDatabaseFactory.CreateDatabase(MyConnectionString, DBProviderType.SqlServer)
生成此错误:[ArgumentOutOfRangeException: Index and length must refer to a location within the string.
。我知道连接字符串很好,因为它在应用程序的其他区域中使用并且可以毫无问题地连接到数据库。在调试器中,我可以看到正确提供了字符串。那我想念什么?
我能够通过使用CreateDatabase
方法的重载之一使它正常工作:
Static db As Database = DynamicDatabaseFactory.CreateDatabase("localhost\SQLEXPRESS", "MYDB", "username", "password", DBProviderType.SqlServer)
此重载使您可以将服务器,数据库,用户名和密码传递给方法,而不仅仅是传递连接字符串。我怀疑但无法确认,先前编码的调用在解析连接字符串的服务器部分时遇到问题,我在开发环境中使用Sql Express,并且数据库位于"localhost/SQLEXPRESS"
,生产版本使用Sql的完整版本位于"localhost"
的服务器。无论如何,我都能使上面的代码行起作用。