C# 从控制台应用程序访问SQL Server
我有一个连接到SQLServer数据库的简单控制台应用程序。 但是,它在运行时抛出以下错误。有什么线索吗C# 从控制台应用程序访问SQL Server,c#,sql-server,console-application,C#,Sql Server,Console Application,我有一个连接到SQLServer数据库的简单控制台应用程序。 但是,它在运行时抛出以下错误。有什么线索吗 Unhandled Exception: System.Data.SqlClient.SqlException: Cannot open database "Database" requested by the login. The login failed. Login failed for user 'MYDOMAIN\MYUSERID'. at System.Data.SqlCl
Unhandled Exception: System.Data.SqlClient.SqlException: Cannot open database "Database" requested by the login. The login failed.
Login failed for user 'MYDOMAIN\MYUSERID'.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, BooleanignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
我使用SQLServer2005Express版。
但是,我能够使用数据库资源管理器从VisualWebDeveloper连接到SQLServer。
我使用的代码如下所示:
using System;
using System.Data;
using System.Data.SqlClient;
public class Test
{
public Test()
{
}
static void Main()
{
Console.WriteLine("hello");
string connectionString = "Data Source=localhost\\SQLEXPRESS;Database=Database;Integrated Security=true";
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
Console.WriteLine("done");
}
}
控制台应用程序可以与SQLExpress数据库愉快地交谈。我希望您只需要通过配置对域帐户的访问权限。据推测,web developer应用程序正在使用具有不同域凭据的ASPNET帐户。如果您运行的是Vista,则这可能是因为Visual web developer在特权帐户(例如管理员)下运行。这样做是为了允许您开发和调试应用程序。管理员帐户包含在MSSQL上的admins组中。您的控制台应用程序在您的帐户下运行,该帐户没有连接MSSQL的权限。我猜您可能在web开发人员和.net应用程序之间使用了不同的协议。 作为快速测试,您可以启动Sql Server Configuration Manager并在网络配置下启用每个协议。您还可以在该配置工具中检查/更改sql本机客户端的客户端协议。默认情况下,它们都应该启用共享内存,但仔细检查并没有什么坏处 发件人: 网络支持 仅共享内存连接类型 在本地计算机上,可以通过 SQL Server Express的默认值, 虽然用户可以显式地 在其他受支持的协议上,例如 TCP/IP和命名管道
我假设这是sql server的本地安装,而不是通过网络安装,对吗?在app.config中验证属性“connectionstring”上的密码是否正确
我确实有和你一样的问题。我的密码是空的。我不知道为什么这意味着您的登录没有访问该数据库的权限。有什么解决办法吗?安装新软件有延迟(公司网络)。如何使用ASPNET帐户而不是集成安全性?是的,控制台应用程序和SQL Server在同一台计算机上运行。