2012-06-18 36 views
-2

当我尝试添加连接时,它显示如附件中所示的以下错误。 “无法打开物理文件。访问被拒绝“。在数据连接中添加数据源时出错

当我搜索它时,它建议将SQL Server帐户添加到文件夹。然后,使用以下查询,我发现该帐户是“LocalSystem”。当我尝试将“LocalSystem”添加到文件夹的ACL时,此类帐户不可用。我们如何解决它并将连接添加到DBML?

注意:当我在C#程序中将DataReader与数据库名一起使用时,它运行良好。

enter image description here

查询中使用:

declare @sqlser varchar(20) 

EXEC master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', 
@key='SYSTEM\CurrentControlSet\Services\MSSQLSERVER', 

@value_name='objectname', @[email protected] OUTPUT 


SELECT convert(varchar(30),@sqlser) 

enter image description here

工作的C#程序:

SqlDataReader rdr = null; 
     SqlConnection con = null; 
     SqlCommand cmd = null; 

     try 
     { 
      // Open connection to the database 
      string ConnectionString = "server=D088DTRV;integrated security=true; database=BankAccount"; 

      con = new SqlConnection(ConnectionString); 
      con.Open(); 


      string CommandText = "SELECT * FROM Account"; 
      cmd = new SqlCommand(CommandText); 
      cmd.Connection = con; 


      rdr = cmd.ExecuteReader(); 

      while (rdr.Read()) 
      { 
       string test = rdr["AccountType"].ToString(); 
      } 


     } 
+1

您是否尝试过使用'sysinternals'来判断文件是否被另一个进程使用? – bluevector

回答

0

的问题是有关数据连接。

在高级窗口中,当我检查时,它正在尝试./SQLExpress。我用“。”修改了它。

我重新启动机器。我也停止了services.msc中的SQLExpress

Data Source=.;AttachDbFilename=C:\DevTEST\Databases\LibraryReservationSystem.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True