c# - 连接字符串中下划线后的数据库名称被忽略

标签 c# .net sql

我正在尝试做一些我认为非常简单的事情。 我有一个从数据库中获取的连接字符串。当我创建一个新的 SQL 连接实例时,它看起来(当我调试并查看对象时)它正在正确填充数据库连接字符串。但是,我收到的错误消息让我认为数据库名称中下划线后的所有信息都被删除了。

代码示例:

Database db = new SqlDatabase(ConnectionString); // Connection string appears correct
DbCommand dbCommand = db.GetStoredProcCommand("StoredProcName");
DataSet approverDataset = db.ExecuteDataSet(dbCommand); // when this executes, exception is generated

当我运行这段代码时,我收到了以下异常消息: 服务器主体“testdb_psidentity”无法在当前安全上下文下访问数据库“testdb”

这是我的连接字符串:

DataSource=testserver.com;Database=testdb_ps;Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd

我试过将其更改为:

DataSource=testserver.com;Database=[testdb_ps];Trusted_Connection=false;uid=testdb_psidentity;pwd=testpwd

虽然这似乎获得了数据库的全名,但它似乎也在寻找名称中也带有这些括号的数据库。当我收到此错误时: 无法打开登录请求的数据库“[testdb_ps]”。登录失败。 用户“testdb_psidentity”登录失败。

但是,我可以在 SQL Server Management Studio 中使用该登录名/密码登录连接到数据库。

有什么方法可以让它接受数据库名称 testdb_ps 数据库名称?我无法简单地更改数据库名称,因为我无权访问它,而且我被告知根本不会更改数据库名称。

最佳答案

您可以尝试在连接字符串周围加上引号,我认为它会将下划线解释为分隔符。

取决于你如何使用它使用引号或

"

关于c# - 连接字符串中下划线后的数据库名称被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103679/

相关文章:

c# - 如何制作 If 语句来检查 textBox1.Text 是否包含字符串 reply = client.DownloadString (address);适本地?

c# - 我怎样才能找到以前表格的表格名称?

javascript - modelbinder IsMultiPartContent 始终返回 false。如何用 react 上传文件

mysql - 对第二个左连接进行过滤 - SQL

java - org.hibernate.ObjectNotFoundException : No row with the given identifier exists, 但它确实

c# - 用于 64 位操作系统的 itextsharp

c# - 提高 System.DirectoryServices.AccountManagement 的性能

c# - .Net Core - CS0012 'Object' 在未引用的程序集中定义

c# - MVC 5、Web API 和 Owin

sql - 如何查找在 MySQL 中插入/删除的行数