我是SQL Server和.net的新手。如果在投票前我的问题不明确,请告诉我。
我正在使用C#开发Windows应用程序。我应该选择用户连接到网络驱动器上的.mdf
文件。在我的机器上,我有Windows和SQL Server身份验证。用户有SQL身份验证,因此我应该使用userid和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身份验证。没运气。如果我需要提供任何其他详细信息,请与我们联系。由于我是这个领域的新手,请给我详细解答。我很高兴找到这个小组。感谢所有关注此事的人。
答案 0 :(得分:1)
当您使用基于服务器的SQL Server(即 Microsoft SQL Server Express )时,您无法通过网络驱动器共享数据库文件,这是设计使然。即使您使用交换机覆盖默认的SQL Server行为并为数据库启用UNC路径,您的数据也会被尝试使用单个数据库MDF文件的多个服务器实例损坏。如果需要在无服务器环境中托管数据库(仅使用网络驱动器),则可以选择 Microsoft SQL Server Compact ( SQL Server CE )版本。但请注意,在这种情况下,只有一个用户可以同时访问数据库文件(独占锁定 - >低性能)。加上 SQL Server CE 没有存储过程。