簡體   English   中英

嘗試使用 DataContext 連接到 VS2019 中的 mdf SQLExpress 數據庫

[英]Trying to connect to an mdf SQLExpress database in VS2019 with a DataContext

我可以在VS2019中連接,通過Server Explorer查看數據,查詢表。

我已經包含了我的 Main 方法和來自展開的 Locals 選項卡的摘錄,其中顯示了連接字符串、數據源、數據庫和 _permissionset 值,以及任何其他看起來很重要的項目。

當我在 VS 中連接時,mdf 文件的實際位置在 C:\\Data\\ 文件夾中。 我還將所有 mdf 文件的副本也放在 C:\\Users\\Mindy 中,因為它看起來就是它認為的位置。

服務器資源管理器中數據連接顯示的數據源為:Data Source=LAPTOP-SQFOG5H5\\SQLEXPRESS;Initial Catalog=C:\\USERS\\Mindy\\LINQ_SQL_DB.MDF;Integrated Security=True

如果有人有任何建議,我將非常感謝您的幫助。

static void Main(string[] args)
{
    DataContext db = new DataContext(@"C:\USERS\Mindy\LINQ_SQL_DB.mdf "); 
    Table<Customer> customers = db.GetTable<Customer>();
    Table<Distributor> distributors = db.GetTable<Distributor>();
    Table<Purchase> purchases = db.GetTable<Purchase>();

    IQueryable<Customer> stateQuery = customers.Where(c => c.State == "OH");

    foreach (Customer c in stateQuery)
    {
        Console.WriteLine("{0} {1}", c.First, c.Last);
    }
}


-   -ConnectionString
           -"AttachDBFileName=C:\\Users\\Mindy\\LINQ_SQL_DB.mdf;Server=localhost\\sqlexpress;Integrated 
             Security=SSPI;User Instance=true;MultipleActiveResultSets=true"-string
-   -DataSource-"localhost\\sqlexpress"-string
-   -HasLocalTransaction
        -   '((System.Data.SqlClient.SqlConnection)db.Connection).HasLocalTransaction' threw 
            an exception of type 'System.InvalidOperationException'
        -   bool {System.InvalidOperationException}
-   -HasLocalTransactionFromAPI- 
       - '((System.Data.SqlClient.SqlConnection)db.Connection).HasLocalTransactionFromAPI' threw an 
          exception of type 'System.InvalidOperationException'
       -  bool {System.InvalidOperationException}
-   -Identity-null-object
-   -InnerConnection-
       -  {System.Data.ProviderBase.DbConnectionClosedNeverOpened}- 
       -  System.Data.ProviderBase.DbConnectionInternal 
          {System.Data.ProviderBase.DbConnectionClosedNeverOpened}
-   -WorkstationId-MYCOMPUTERNAME-string
-   -_connectionString- 
       -  AttachDBFileName=C:\\Users\\Mindy\\LINQ_SQL_DB.mdf;Server=localhost\\sqlexpress;Integrated 
          Security=SSPI;User Instance=true;MultipleActiveResultSets=true-string
-   -stateQuery-{System.Data.Linq.DataQuery<Start_LINQ_SQL.Customer>}
       -  System.Linq.IQueryable<Start_LINQ_SQL.Customer> 
          {System.Data.Linq.DataQuery<Start_LINQ_SQL.Customer>}
-   -System.ComponentModel.IListSource.ContainsListCollection-FALSE-bool
-   - System.Linq.IQueryable.ElementType
         -{Name = "Customer" FullName = "Start_LINQ_SQL.Customer"}
         -System.Type {System.RuntimeType}
-   - System.Linq.IQueryable.Expression-
        -{Table(Customer).Where(c => (c.State == "OH"))}
        -System.Linq.Expressions.Expression {System.Linq.Expressions.MethodCallExpressionN}
-   - System.Linq.IQueryable.Provider-
        -{System.Data.Linq.DataQuery<Start_LINQ_SQL.Customer>}
        -System.Linq.IQueryProvider {System.Data.Linq.DataQuery<Start_LINQ_SQL.Customer>}
-   -cachedList-null-System.ComponentModel.IBindingList
-   - context-{System.Data.Linq.DataContext}-System.Data.Linq.DataContext
-   - queryExpression-
          -{Table(Customer).Where(c => (c.State == "OH"))}
          -System.Linq.Expressions.Expression {System.Linq.Expressions.MethodCallExpressionN}
-   - Results View-Expanding the Results View will enumerate the IEnumerable- 
-   -Class-14-byte
-   - Data-
        -{System.Collections.ListDictionaryInternal}
        -System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
-   -ErrorCode--2146232060-int
-   - Errors-{System.Data.SqlClient.SqlErrorCollection}-System.Data.SqlClient.SqlErrorCollection
-   -HResult--2146232060-int
-   -HelpLink-null-string
-   - InnerException-null-System.Exception
-   -IsTransient-FALSE-bool
-   -LineNumber-65536-int
-   -Message-"Login failed for user 'MYCOMPUTERNAME\\Mindy'."-string
-   -Number-18456-int
-   -Procedure-""-string
-   -RemoteStackTrace-null-string
-   -Source-".Net SqlClient Data Provider"-string
-   -StackTrace-
        " at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 
            waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, 
            DbConnectionOptions userOptions, DbConnectionInternal& connection)\r\n at 
        -   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, 
            TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& 
            connection)\r\n at 
        -   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, 
            TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal 
            oldConnection, DbConnectionInternal& connection)\r\n at - 
        -   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection 
            outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, 
            DbConnectionOptions userOptions)\r\n at 
       -    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, 
            DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions 
            userOptions)\r\n at 
       -    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)\r\n at 
            System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)\r\n at 
            System.Data.SqlClient.SqlConnection.Open()\r\n at 
       -    System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)\r\n at 
            System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe()\r\n at 
       -    System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode()\r\n at 
       -    System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression 
            query)\r\n at 
       -    System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()\r\n at 
            System.Linq.SystemCore_EnumerableDebugView`1.get_Items()"-string
-   -State-1-byte
-   - TargetSite-
        -{Boolean TryGetConnection(System.Data.Common.DbConnection, UInt32, Boolean, Boolean, 
            System.Data.Common.DbConnectionOptions, System.Data.ProviderBase.DbConnectionInternal 
            ByRef)}-System.Reflection.MethodBase {System.Reflection.RuntimeMethodInfo}
-   -WatsonBuckets-null-object
-   -HResult--2146232060-int
-   -className-null-string
-   - _data
        -{System.Collections.ListDictionaryInternal}
        -System.Collections.IDictionary {System.Collections.ListDictionaryInternal}
-   -_doNotReconnect-FALSE-bool
-   -_dynamicMethods-null-object
-   - _errors-{System.Data.SqlClient.SqlErrorCollection}-System.Data.SqlClient.SqlErrorCollection
-   -_exceptionMethod-null-System.Reflection.MethodBase
-   -_exceptionMethodString-null-string
-   -_helpURL-null-string
-   - _innerException-null-System.Exception
-   -_message-"Login failed for user 'MYCOMPUTERNAME\\Mindy'."-string

初始化 Datacontext 時,您希望提供完整的 connectionString。 嘗試更換:

DataContext db = new DataContext(@"C:\USERS\Mindy\LINQ_SQL_DB.mdf "); 

和:

DataContext db = new DataContext(@"Data Source=LAPTOP-SQFOG5H5\SQLEXPRESS;Initial Catalog=C:\USERS\Mindy\LINQ_SQL_DB.MDF;Integrated Security=True"); 

“用戶‘MYCOMPUTERNAME\\Mindy’登錄失敗”可能意味着登錄/憑據問題。 請參閱我對https://stackoverflow.com/a/63964079/2468348 的回答

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM