首页 > 解决方案 > DynamicDatabaseFactory.CreateDatabase 连接字符串解析出错

问题描述

我对 DynamicDatabaseFactory 不是很熟悉,也没有很多信息。我正在对一个站点进行更改,我只是想让它在我的开发机器上运行,我遇到了这个问题,行:DynamicDatabaseFactory.CreateDatabase(MyConnectionString, DBProviderType.SqlServer)生成此错误:[ArgumentOutOfRangeException: Index and length must refer to a location within the string.。我知道连接字符串很好,因为它用于应用程序的其他区域并且可以毫无问题地连接到数据库。在调试器中,我可以看到正确提供了字符串。那么我错过了什么?

标签: vb.netsql-server-2012-express

解决方案


通过使用该方法的重载之一,我能够使其工作CreateDatabase

Static db As Database = DynamicDatabaseFactory.CreateDatabase("localhost\SQLEXPRESS", "MYDB", "username", "password", DBProviderType.SqlServer)

此重载允许您将服务器、数据库、用户名和密码传递给方法,而不仅仅是传递连接字符串。我怀疑,但无法确认,之前编码的调用在解析连接字符串的服务器部分时出现问题,我在开发环境中使用 Sql Express,数据库位于"localhost/SQLEXPRESS",生产使用完整版本的 Sql Server,即位于"localhost"。无论如何,我能够使用上面的代码行来完成工作。


推荐阅读