Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 同时从LINQ和SSMS打开SQL Server数据库_C#_.net_Visual Studio 2010_Sql Server 2008_Linq To Sql - Fatal编程技术网

C# 同时从LINQ和SSMS打开SQL Server数据库

C# 同时从LINQ和SSMS打开SQL Server数据库,c#,.net,visual-studio-2010,sql-server-2008,linq-to-sql,C#,.net,Visual Studio 2010,Sql Server 2008,Linq To Sql,我在本地机器上有一个数据库。我有一个C#应用程序,它使用LINQtoSQL将记录插入这个数据库。我使用SSMS(SQLServerManagementStudio)打开了数据库(并在查询窗口中选择了记录)。现在,如果我尝试运行C#应用程序,我会得到以下错误: “Cannot open user default database. Login failed. Login failed for user DFGV\G16570'.” 当我重新启动系统时,这个错误就会消失 注意:我使用的是integ

我在本地机器上有一个数据库。我有一个C#应用程序,它使用LINQtoSQL将记录插入这个数据库。我使用SSMS(SQLServerManagementStudio)打开了数据库(并在查询窗口中选择了记录)。现在,如果我尝试运行C#应用程序,我会得到以下错误:

“Cannot open user default database. Login failed. Login failed for user DFGV\G16570'.”
当我重新启动系统时,这个错误就会消失

注意:我使用的是integratedsecurity=True

注意:SQL Server使用“LocalSystem”帐户运行

LINQ中的连接字符串:

 Data Source=.; AttachDbFilename=C:\DevTEST\Databases\LibraryReservationSystem.mdf;
 Integrated Security=True; Connect Timeout=30;User Instance=True
注:“用户实例”关键字

以下是我的LINQ查询:

public virtual void InsertOnSubmit(T entity)
    {
        GetTable().InsertOnSubmit(entity);
        Context.SubmitChanges();
    }
当我通过SSMS连接到数据库时,我应该怎么做才能使LINQ正常工作

编辑

根据响应,我更改了代码,如下所示

   string connectionstring = "Data Source=.;Initial Catalog=LibraryReservationSystem;Integrated Security=True;Connect Timeout=30";

        using (var context = new RepositoryLayer.LibraryManagementClassesDataContext(connectionstring)) 
        {

            RepositoryLayer.Repository<RepositoryLayer.Account> selectedRepository = new RepositoryLayer.Repository<RepositoryLayer.Account>();
            selectedRepository.Context = context;
            AccountBusiness accountBl = new AccountBusiness(selectedRepository);

            //List<RepositoryLayer.Account> accountList = accountBl.GetAllAccounts();
            accountBl.InsertAccounts();
        }
string connectionstring=“数据源=;初始目录=LibraryReservationSystem;集成安全性=True;连接超时=30”;
使用(var context=new RepositoryLayer.LibraryManagementClassesDataContext(connectionstring))
{
RepositoryLayer.Repository selectedRepository=newrepositorylayer.Repository();
selectedRepository.Context=Context;
AccountBusiness accountBl=新的AccountBusiness(selectedRepository);
//List accountList=accountBl.GetAllAccounts();
accountBl.InsertAccounts();
}

注意:确保未将“User Instance”关键字设置为TRUE

您正在使用该选项打开数据库,这意味着该数据库是作为用户实例打开的,只能通过打开它的进程标识访问

如果要从多个进程访问数据库,请将其附加到适当的SQL Server实例,然后通过InitialCatalog属性中的数据库名称连接到该实例。不要使用AttachDbFileName和UserInstance


这在

什么是您的连接字符串?这是windows窗体应用程序还是web应用程序中有描述。很明显,您使用的是集成安全性,但尝试连接数据库的用户没有在数据库上进行连接和操作的权限。我使用的是控制台应用程序。此应用程序正在访问使用LINQ的类库。您不能访问这样的连接字符串。您应该使用中介绍的ConfigurationManager.ConnectionString属性。在任何情况下,您仍然使用“User Instance”关键字,这意味着连接将失败。