在web.config中:
<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD=+abc-def(;" />
我确保用户名在INITIALDB中具有db_owner角色,删除数据库用户并重新创建它。通过SSMS(使用上面的UID和PWD)连接到服务器并扩展数据库,我确保用户名密码有效。
有什么想法吗?我的智慧结束了,我无法轻易更改分配给我的密码......我认为这些角色中的任何一个都不需要转义,但显然存在问题。
更新:
错误与密码字符无关。我得到“无法打开数据库...登录请求。登录失败......”但是 - 当我从连接字符串中删除“初始目录”或“数据库”部分时,连接工作正常。事实证明,数据库的.MDF文件名与数据库名称不同(例如my_db_name和db_name.mdf)。因此,指定数据库或初始目录属性的连接字符串无法连接。分离,将MDF文件名更改为一致,并重新附加数据库实际上对问题进行了排序。奇怪吧?
答案 0 :(得分:1)
以这种方式使用密码:"+abc-def(;"
像:
<add name="conn" providerName="System.Data.SqlClient" connectionString="Server=SERVERNAME; Initial Catalog=INITIALDB; UID=username; PWD="+abc-def(;"" />