在c#中使用.MDF文件

时间:2013-04-09 06:27:33

标签: c# sql-server desktop-application

我有.mdf个文件。我想在桌面应用程序的c#中使用它。

这是我的连接字符串:

string cwd = System.IO.Directory.GetCurrentDirectory();
string ConString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=" + cwd + "\\SalaryProgram.mdf;Integrated Security=True;User Instance=True";

如何在C#中使用.mdf文件?

我收到此错误:

  

尝试为文件D:\ Naresh Backup \ SalaryProgram \ Latest Work \ SalaryProgram \ SalaryProgram \ bin \ Debug \ SalaryProgram.mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。

提前致谢。

3 个答案:

答案 0 :(得分:1)

检查以下3件事:

  1. 确保您的MDF文件是由与目标计算机上安装的相同或较旧版本的SQL Server创建的。

  2. 确保目标计算机上的SQL Server尚未具有同名的数据库。

  3. 总是更喜欢Path.Combine()而不是直接连接文件夹路径和文件名。有时函数会返回结束反斜杠字符作为路径的一部分,有时则不会。因此,直接连接可能导致非法路径。

  4. 您可能也希望查看|DataDirectory|功能,GetCurrentDirectory()

答案 1 :(得分:0)

在我之前的一个项目(C#中的winform应用程序)中,我使用的是DB“EmployeeMaster”。

对我有用的连接字符串是:

“数据源=(本地)\ SQLExpress;初始目录= EmployeeMaster; Trusted_Connection =是;”

试一试。

答案 2 :(得分:0)

我真的建议您定期将此MDF文件附加到本地实例,然后连接到数据库。在asp.net应用程序中附加mdf文件并不是最好的方法。

只需将连接字符串添加到您的aplication配置文件

即可
<connectionStrings>
            <add name="yourConnectionString" connectionString=
"Data Source=(local); Initial Catalog=database_name;Integrated Security=True"     
 providerName="System.Data.SqlClient"/>
    </connectionStrings>

然后在你的代码中使用它:

string ConString = ConfigurationManager.ConnectionStrings["yourConnectionString 
"].ConnectionString