如何连接到MDF数据库文件?

我正在尝试第一次将C#应用程序连接到MDF数据库,我需要一些帮助。

我在Visual Studio 2010中创build了一个小的MDF数据库文件,然后创build了另一个项目并将该文件导入到项目本身中。

我不想通过代码连接到MDF文件。 这里我正在使用的代码:

namespace DBtestApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } System.Data.SqlClient.SqlConnection con; private void Form1_Load(object sender, EventArgs e) { con = new System.Data.SqlClient.SqlConnection(); con.ConnectionString = "DataSource=.\\SQLEXPRESS; AttachDbFilename =SampleDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"; con.Open(); MessageBox.Show("Connection opened"); con.Close(); MessageBox.Show("Connection closed"); } } } 

当我运行这个应用程序的时候,我在定义连接string的那一行得到了一个exception,并且这个exception在栈顶有这个消息:

 System.ArgumentException: Keyword not supported: 'datasource'. 

有人能指出我正确的方向吗?

Data Source之间添加空间

  con.ConnectionString = @"Data Source=.\SQLEXPRESS; AttachDbFilename=c:\folder\SampleDatabase.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True"; 
 string sqlCon = @"Data Source=.\SQLEXPRESS;" + @"AttachDbFilename=|DataDirectory|\SampleDB.mdf; Integrated Security=True; Connect Timeout=30; User Instance=True"; SqlConnection Con = new SqlConnection(sqlCon); 

文件path应该有| DataDirectory | 它实际上链接到“当前项目目录\ App_Data”或“当前项目目录”并获得.mdf文件…..将.mdf放置在这些地方中的任何一个,并应在Visual Studio 2010中工作。并且当您使用生产系统上的独立应用程序,则可执行文件所在的当前path应具有.mdf文件。

转到服务器资源pipe理器>您的数据库>右键单击>属性> ConnectionString并复制连接string,并通过复制到connectiongstring代码:)

 Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes; 

对于Visual Studio 2015,连接string是:

 "Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True" 
 SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\Samples\MyApp\C#\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 

这是为我工作…有什么办法来缩短path? 喜欢

 SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=\bin\Debug\Login.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); 

替代解决scheme,您可以在解决scheme内部的数据库中find所需的数据库。 这对我有用:

 .ConnectionString(@"Data Source=LocalDB)\MSSQLLocalDB; AttachDbFilename="+AppDomain.CurrentDomain.BaseDirectory+"Folder1\\Folder2\\SampleDatabase.mdf" + "; Integrated Security=True;")