无法使用连接字符串连接到本地SQL Server数据库,但VS可以

时间:2016-04-29 09:30:03

标签: c# sql-server visual-studio connection-string

我正在尝试使用连接字符串通过Visual Studio 15连接到本地Sql Server 2012数据库实例。虽然我已经能够通过Visual Studio SQL Server对象资源管理器连接到数据库并成功运行测试程序,但我无法在使用连接字符串的项目中执行此操作。

这是我的连接字符串,由SQL Server对象资源管理器

提供
<connectionStrings>    
  <add name="objConnLocal" 
connectionString="Data Source=DESKTOPIVO;Integrated Security=True;Initial Catalog=tnk;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;"providerName="System.Data.SqlClient"/>
</connectionStrings>

这是我的代码完美地连接到Azure数据库,Azure给定连接字符串(代码可以正常工作)

public class DbConn
{

public static string DatabaseConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["objConnLocal"].ConnectionString;
    public static SqlConnection objConn = new sqlConnection(DatabaseConnectionString);



public void spCMSSelectTest(out DataSet ds)
{
    ds = new DataSet("buttons");
    SqlDataAdapter objDataAdapter = new SqlDataAdapter();
    SqlCommand cmd = new SqlCommand("spCMSSelectTest", DbConn.objConn);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Connection.Open();
    objDataAdapter.SelectCommand = cmd;
    objDataAdapter.Fill(ds);
    cmd.Connection.Close();
}
}

这是我正在尝试连接的数据库:enter image description here

这是我试图访问的测试页面:

 protected void Page_Load(object sender, EventArgs e)
{
    DataSet ds;
    try
    { 
    dbc.spCMSSelectTest(out ds);

        lblTest.Text = ds.Tables[0].Rows.Count.ToString();
    }
    catch (Exception easd)
    {
        lblTest.Text = easd.ToString();
    }

}

我一直在这里和谷歌上找到答案,但似乎没有什么对我有用。我错过了什么?

编辑: 有错误:

  

System.Data.SqlClient.SqlException(0x80131904):用户登录失败   'IIS APPPOOL \ DefaultAppPool'。在   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity   identity,SqlConnectionString connectionOptions,SqlCredential   凭证,Object providerInfo,String newPassword,SecureString   newSecurePassword,Boolean redirectedUserInstance,SqlConnectionString   userConnectionOptions,SessionData reconnectSessionData,   DbConnectionPool池,String accessToken,Boolean   applyTransientFaultHandling)at   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions   options,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,   DbConnectionPool池,DbConnection owningConnection,   DbConnectionOptions userOptions)at   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(类DBConnectionPool   pool,DbConnection owningObject,DbConnectionOptions选项,   DbConnectionPoolKey poolKey,DbConnectionOptions userOptions)at   System.Data.ProviderBase.DbConnectionPool.CreateObject(的DbConnection   owningObject,DbConnectionOptions userOptions,DbConnectionInternal   oldConnection)   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(的DbConnection   owningObject,DbConnectionOptions userOptions,DbConnectionInternal   oldConnection)   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(的DbConnection   owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean   allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions   userOptions,DbConnectionInternal&amp;连接)   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(的DbConnection   owningObject,TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1重试,DbConnectionOptions   userOptions,DbConnectionInternal oldConnection,DbConnectionInternal&amp;   连接)   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(的DbConnection   outerConnection,DbConnectionFactory connectionFactory,   TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource 1   重试)   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1   重试)在System.Data.SqlClient.SqlConnection.Open()处   DbConn.spCMSSelectTest(DataSet&amp; ds)in   c:\ inetpub \ wwwroot \ CMS \ App_Code \ DbConn.cs:第22行at   index.Page_Load(Object sender,EventArgs e)in   c:\ inetpub \ wwwroot \ CMS \ index2.aspx.cs:第18行   ClientConnectionId:d576fae4-db3d-451d-8436-2abe003c01f0错误   号码:18456,状态:1,类别:14

2 个答案:

答案 0 :(得分:3)

您以受信任的用户身份登录(默认) - 该用户是您需要以您身份登录的池用户IIS APPPOOL \ DefaultAppPool,或SQL登录。因为它在池下运行时不使用相同的凭据,因为它来自您的桌面。

答案 1 :(得分:1)

您错过了数据库。

Initial Catalog=tnk添加到您的连接字符串。

相关问题