我使用连接字符串
创建了一个c#程序Server=.\SQLExpress;AttachDbFilename=|DataDirectory|APSDB.mdf;Database=APSDB; Initial Catalog= APSDB; Trusted_Connection=True; User Instance=true;
它使用我创建它的计算机,但在使用Advanced Installer并将其部署到我的笔记本电脑以测试它是否在不同的环境中工作时,它完全失败。该程序运行,但一旦我做了访问数据库的任何事情,它就会给我错误:
用户域\名称登录失败。
我检查了SQL Server错误日志,没有错误18456,状态38了。它只是说:
2016-08-24 17:32:03.57 spid69s启动数据库'APSDB'
2016-08-24 17:32:03.57 spid69s [INFO] HkHostDbCtxt :: Initialize():数据库ID:[6]'APSDB'。 XTP引擎版本为0.0。
2016-08-24 17:32:03.57 spid69s [INFO] HkHostDbCtxt :: Initialize():数据库ID:[6]'APSDB'。 XTP引擎版本为0.0。
2016-08-24 17:32:03.57 spid69s [INFO] HkHostDbCtxt :: Initialize():数据库ID:[6]'APSDB'。 XTP引擎版本为0.0。
更改SQL Server Express用于启动我的本地系统的帐户,并重新运行所有内容后,在错误日志中显示:
登录用户域\名称
成功
但是,我的程序问题仍然存在。
答案 0 :(得分:0)
在日志SQL Server中搜索下一个错误: “错误18456,严重性:14。财产:38 用户“ YourUser”的登录失败。原因:无法打开数据库'YourDataBase'...“
如果数据库具有检查和正确权限,则在“用户映射”选项卡中的“用户”属性中显示。
如果没有检查并推动检查,则显示错误“ Microsoft SQL Server,错误:15405”,您可以执行下一个操作:
使用myDB exec sp_changedbowner'sa','true'
然后看到数据库AUTOCLOSE的选项为FALSE。 https://blog.sqlauthority.com/2016/02/20/sql-server-starting-up-database-why-multiple-times-in-errorlog/