连接到数据库在网络驱动器(Connect to database in network drive)

2019-10-20 18:36发布

我是一个新手,SQL Server和.NET。 请让我知道,如果我的问题是不是下来投票前明确。

我的工作与C#中的Windows应用程序。 我应该给选项,用户可以连接到一个.mdf文件网络驱动器上。 在我的机器,我的Windows和SQL Server身份验证。 用户有SQL身份验证,因此我应该使用用户ID和PWD。 我和网友认为网络驱动器上工作,读/写/修改。 我们非常共享文档,添加和删除网络驱动器的文档。

这里是设计师

我会选择SQL Server数据库中.mdf它位于网络驱动器,然后做测试连接文件。 为了测试连接,这是代码

 string sTemp = System.Configuration.ConfigurationManager.AppSettings["connectionStringShare"];

 string connectionString = sTemp.Replace("{AppDir}", txtDB.Text.Trim());

 using (SqlConnection objSqlConnection = new SqlConnection(connectionString))
 {
          try
          {
              objSqlConnection.Open();
              objSqlConnection.Close();
              MessageBox.Show("Connection is successfull");
          }
          catch (Exception ex)
          {
              MessageBox.Show("Error : " + ex.Message.ToString());

          }
}

这是连接字符串

<add key="connectionStringShare" 
     value="Data Source=.\SQLEXPRESS;Initial Catalog=TableSQLExpress;AttachDBFilename={AppDir};Integrated Security=SSPI;user id=sa;password=pwd;" />

这是我得到的错误信息

目录查找的文件“S:\ zrep \ TableSQLExpress.mdf”与操作系统错误3次失败(系统找不到指定的路径。)。
不能将文件 'S:\ zrep \ TableSQLExpress.mdf' 数据库 'TableSQLExpress'。

我改变了连接字符串,并使用Windows身份验证也尝试过累。 没运气。 让我知道如果我需要提供什么额外的细节。 由于我是新手到这个领域,请给我详细的解答。 我很高兴地发现这个组。 感谢大家谁看着这一点。

Answer 1:

当您使用基于服务器的SQL服务器(如微软的SQL Server Express),你无法通过网络驱动器共享数据库文件,它是由设计。 即使你覆盖默认的SQL Server的行为有开关和启用数据库的UNC路径,您的数据将通过多个服务器实例尝试使用单个数据库的MDF文件被损坏。 如果您需要托管在无服务器环境(仅使用一个网络驱动器)的数据库,你可以选择微软的SQL Server Compact( 的SQL Server CE)版本。 但要知道,在这样的情况下,只有一个用户将能够在同一时间(独占锁定 - >低性能)来访问数据库文件。 加的SQL Server CE没有存储的特效。



文章来源: Connect to database in network drive