0

我有 win 应用程序,当我想将数据库连接到我的应用程序错误时出现此错误:

尝试为文件 C:\Users\Aren\Desktop\DB\REGISTRATION.mdf 附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。

public class DALBase
{
    protected SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\\Users\\Aren\\Desktop\\DB\\REGISTRATION.mdf;integrated Security=true ; User Instance=True");
    protected SqlCommand com = new SqlCommand();
    protected SqlDataAdapter da = new SqlDataAdapter();
    protected DataSet ds = new DataSet();

}

public DataSet GetStudent(string filter)
    {

        DataSet dset = new DataSet();
        using (SqlCommand cmd = new SqlCommand())
        {
            string cmdstring = string.Format("Select * from {0}"
               , Common.Data.Student.Table_Name);


            if (!string.IsNullOrEmpty(filter)) cmdstring += " where " + filter;


            cmd.CommandText = cmdstring;
            cmd.Connection = this.con;
            cmd.Connection.Open();
            cmd.CommandText = cmdstring;
            cmd.Connection = this.con;
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(dset, Common.Data.Student.Table_Name);
            return dset;
        }
    }

注意:我的解决方案中还有 3 个项目,DALBASE 和 GETSTUDENT 方法在一个项目中,我从其他项目中调用它们来为我获取数据。

4

1 回答 1

0

我相信我过去遇到过这个问题。在我的情况下,我在 Visual Studio 中加载了一个应用程序,该应用程序在运行时会加载数据库并附加到 SQL Server。不知何故,当我关闭应用程序时,它没有从 SQL SERVER 中分离数据库,下次我运行应用程序时,它会抱怨类似的消息,如果不是相同的消息。

如果您安装了 SSMS,请打开 .\SQLEXPRESS 实例并查看您是否附加了 Registration*.mdf 文件。或者,如果您没有 SSMS,请打开命令行并输入...

sqlcmd -S .\SQLEXPRESS -Q "select name from sys.databases"

这将向您显示该实例上附加/在线的所有数据库。

希望这可以帮助。

于 2013-03-08T13:37:30.393 回答