如何解决尝试使用DataContext连接到VS2019中的mdf SQLExpress数据库
我可以在VS2019中连接到它,查看数据,并通过Server Explorer查询表。
我从扩展的“本地”选项卡中包含了我的Main方法和摘录,其中显示了连接字符串,数据源,数据库和_permissionset值,以及其他看起来很重要的项目。
当我在VS中连接时,mdf文件的实际位置在C:\ Data \文件夹中。我还把所有mdf文件的副本也放在了C:\ Users \ Mindy中,因为它看起来像它认为的那样。
在Server Explorer中为数据连接显示的数据源是: 数据源= LAPTOP-SQFOG5H5 \ SQLEXPRESS;初始目录= C:\ USERS \ Mindy \ LINQ_SQL_DB.MDF;集成安全性= 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,DbConnectionInternal&
connection)\r\n at
- System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,DbConnectionInternal
oldConnection,DbConnectionInternal& connection)\r\n at -
- System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
outerConnection,DbConnectionFactory connectionFactory,DbConnectionOptions userOptions)\r\n at
- System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,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,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
解决方法
初始化数据上下文时,您要提供完整的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
的回答版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。