2013-05-22 55 views
0

我正在尝试连接到SQL Server。使用此代码从SQL Server 2008身份验证问题访问数据

public static String getDBConnection() 
    { 
     SqlConnectionStringBuilder csBuilder = new SqlConnectionStringBuilder(); 

     csBuilder.InitialCatalog = "AdDatabase"; 
     csBuilder.DataSource = "JAWADAMJAD-PC\\SQLEXPRESS"; 
     csBuilder.UserID = "Jawad"; 
     csBuilder.Password = "123456"; 

     return csBuilder.ConnectionString; 
    } 

我已经通过SQL Server管理控制台添加了此用户名。我仍然无法弄清楚为什么我无法连接到SQL Server。我需要做其他事情才能成功连接吗? 如果是这样的话是什么? 请帮助!我使用Visual Studio 2010和SQL Server 2008

我收到以下异常

System.Data.SqlClient.SqlException: Login failed for user 'Jawad'. 
    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, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) 
    at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) 
    at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) 
    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) 
    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) 
    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) 
    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) 
    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) 
    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) 
    at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) 
    at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at AdServiceNew.Service1.initDB() in C:\Users\OZI TECH\Desktop\AdServiceNew\AdServiceNew\AdServiceNew\Service1.asmx.cs:line 57 

我去了服务器日志,它说

An attempt to login as SQL Authentication Failed. Server is configured for windows authentication only. 
+1

您遇到的异常情况是什么? – Vivasaayi

+0

你有什么迹象表明这不成功? – David

+0

对不起,我忘了添加异常,我已将它添加到问题中。请查看 –

回答

1

如果只有Windows身份验证模式,那么您需要将集成安全性选项设置为true并删除用户和密码。

System.Data.SqlClient.SqlConnectionStringBuilder构建器= new System.Data.SqlClient.SqlConnectionStringBuilder(); builder [“Data Source”] =“(local)”; 构建器[“集成安全性”] = true; builder [“Initial Catalog”] =“AdventureWorks; NewValue = Bad”; Console.WriteLine(builder.ConnectionString);

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx

+0

这是一个解决方案,Yaugen Vlasau的解决方案也工作。谢谢 –