我从C#控制台应用程序整天连接到我的本地数据库(SQL Express)。
我做了一个更新,我使用ADO.NET在C#代码中创建数据库和表
当我这样做时,我的正常连接字符串失败,即
Data Source=.\\sqlexpress; Trusted_Connection=True; Initial Catalog=ThisIsMyDataBase;
错误消息是
Cannot open database "ThisIsMyDataBase" requested by the login. The login failed.\r\nLogin failed for user 'My-PC\\MrD'.
如果我在SSMS中打开表,那么我可以使用Windows身份验证访问所有内容。
我的印象是Trusted_Connection=True
意味着我有权限,并且我使用我的Windows帐户(不是SQL帐户)访问它意味着我没有看到这个问题,但我显然是错的。我不知道如何解决这个问题。
答案 0 :(得分:0)
您可能没有与您的WIN用户关联的sql server登录,映射到数据库用户。
检查您的模型数据库(在管理工作室中的系统数据库下)是否在“安全/用户”下列出了您的WIN用户。如果没有,请添加它。然后删除MyDb数据库并使用您的代码再次创建它。 CREATE DATABASE语句使用model数据库的副本来创建新数据库及其元数据。
答案 1 :(得分:0)
错误本身就是说用户没有访问failed for user 'My-PC\\MrD'.
从sql server本身登录用户
答案 2 :(得分:0)
我有解决方案,但我根本不理解
答案是用较少的字符重命名数据库。我的实际数据库长度为27个字符,我只给它一个4个字符的长名称(简称为My01),它运行正常。