使用C#连接到SQL Server 2008 Express数据库

时间:2014-09-28 10:32:17

标签: c# sql sql-server-2008-express

我正在开发一个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>

我哪里错了?

1 个答案:

答案 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而不是.. :)