如何在C#中自动附加SQL Server数据库?

时间:2017-05-20 10:59:23

标签: c# sql-server

我是C#和SQL Server 2014 Express的新手,我正在使用Windows窗体。

我正在构建从/向SQL Server数据库读/写的小应用程序。 我试图自动附加SQL Server数据库,然后从名为Datagridview的表中读取数据,然后填写 SqlConnection MyConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString); SqlCommand MyCommand= new SqlCommand(); DataTable DataTable = new DataTable(); SqlDataAdapter Sql_Data_Adapter= new SqlDataAdapter(); private void button1_Click(object sender, EventArgs e) { MyConnection.Open(); MyCommand.CommandText = "SELECT * FROM Test_Table "; MyCommand.Connection = MyConnection; Sql_Data_Adapter.SelectCommand = MyCommand; Sql_Data_Adapter.Fill(DataTable); dataGridView1.DataSource = DataTable; MyCommand.Parameters.Clear(); Sql_Data_Adapter.Dispose(); MyConnection.Close(); }

我使用的代码:

<connectionStrings>  
   <add name="MyConnectionString"        
        connectionString="Data Source=localhost; AttachDbFilename=D:\\DB\\MyDB.mdf;Integrated Security=True"/>
</connectionStrings> 

App.config中:

button1

当我点击onSelect时,它会抛出错误:

  

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

我没有附加其他数据库且数据库路径正确。 我看了hereherehere,但没有帮助。

知道如何自动附加SQL Server数据库文件?谢谢

1 个答案:

答案 0 :(得分:1)

您使用的SQL Server版本是什么?这将解释您的错误消息。

您的连接字符串:

  

&#34;数据源= localhost; AttachDbFilename = d:\ DB \ MyDB.mdf;集成   安全=真&#34;

您只能将AttachDbFilename与SQL Express一起使用。在您的连接字符串中,数据源设置为 localhost 。听起来你已经安装了完整版的SQL Server。

如果安装了完整版本的SQL Server,则只能通过Management Studio附加数据库。

如果您使用的是SQL Express,请更改数据源:

Data Source=.\SQLEXPRESS