我正在开发一个Winforms应用程序,我在其中使用SQL Server 2008 Express Edition作为后端。但是我收到了错误:
其他信息:尝试为文件D:\ Hardik \ Hardik \ dotnet \ TestApplication \ TestApplication \ bin \ Debug \ MyDatabase.mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。
我的代码是:
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "Select * From MyTable";
cmd.CommandType = CommandType.Text;
da = new SqlDataAdapter();
da.SelectCommand = cmd;
dt = new DataTable();
ds = new DataSet();
da.Fill(ds, "Login");
dt = ds.Tables[0];
dataGridView1.DataSource = dt;
}
和我的app.config
文件是:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MyConnection"
connectionString="Server=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True; User Instance=True"
providerName="System.Data.Client"/>
</connectionStrings>
</configuration>
我哪里错了?
答案 0 :(得分:0)
使用双斜线插入单斜杠。
UNC路径使用双斜线或反斜杠在计算机名称之前。
<connectionStrings>
<add name="MyConnection" connectionString="Server=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\MyDatabase.mdf;Integrated Security=True; User Instance=True" providerName="System.Data.Client"/>
</connectionStrings>
例如失败 当您收到错误&#34;实例失败&#34;时,这可能是您的SQL Server实例的错误..
确保您的SQL Server实例(MSSQLSERVER)正在运行,您可以在其中签入:服务列表。进入服务列表:打开运行对话框并输入:&#34; services.msc&#34; (不带引号)并按Enter键。这会将您带到服务管理控制台,您可以在其中检查您的实例是否正在运行..
如果问题仍然存在,请尝试使用:Data Source =。\ SQLEXPRESS而不是.. :)