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

C# 如何连接到MDF数据库文件?,c#,sql,database,visual-studio-2010,C#,Sql,Database,Visual Studio 2010,我第一次尝试将C#应用程序连接到MDF数据库,我需要一些帮助 我在VisualStudio2010中创建了一个小型MDF数据库文件,然后创建了另一个项目并将该文件导入到项目本身中 我没有试图通过代码连接到MDF文件。下面是我使用的代码: namespace DBtestApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent

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

我在VisualStudio2010中创建了一个小型MDF数据库文件,然后创建了另一个项目并将该文件导入到项目本身中

我没有试图通过代码连接到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");
        }
    }
}
当我运行应用程序时,我在定义连接字符串的行中得到一个异常,该异常在堆栈顶部有以下消息:

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

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

数据源之间添加空格

 con.ConnectionString = @"Data Source=.\SQLEXPRESS;
                          AttachDbFilename=c:\folder\SampleDatabase.mdf;
                          Integrated Security=True;
                          Connect Timeout=30;
                          User Instance=True";
文件路径应该有|DataDirectory |,它实际上链接到“当前项目目录\App_Data\”或“当前项目目录”并获取.mdf文件…..将.mdf放在这两个位置中的任何一个,并且应该在visual studio 2010中工作。当您在生产系统上使用独立应用程序时,那么可执行文件所在的当前路径应该有.mdf文件

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");
这对我有用。。。有没有办法缩短这条路?像

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

转到服务器资源管理器>您的数据库>右键单击>属性>连接字符串,然后复制连接字符串并跳过复制到的连接字符串代码:)

对于Visual Studio 2015,连接字符串为:

"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"

替代解决方案,其中可以将数据库放在解决方案中所需的文件夹中。这对我很有用:

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

这篇文章可能会有帮助:[如何在一个简单的web项目中连接到.mdf(Microsoft SQL Server数据库文件)][1]Cheerz[1]:在编辑时,删除
中的空格;AttachDbFilename=
尝试过,但现在我遇到以下异常:
System.Data.SqlClient.SqlException(0x80131904):尝试为文件SampleDatabase.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定的文件,或该文件位于UNC共享上。
您需要指定sampleDatabase.mdf的路径。看一看编辑后的文章。但是,当我将MDF文件添加到项目的本地资源时,为什么要指定完整的路径呢。。我不想硬编码路径,因为这意味着MDF文件必须始终存在。。我可以不引用它在项目中的本地存在吗?我正在考虑编辑它,以便将字符串连接起来以消除水平滚动,但我恐怕对此了解不够,无法相信自己不会做出错误的回答。我尝试了此修改版本“
”Server=。\\SQLExpress;AttachDbFilename=SampleDatabase.mdf;数据库=样本数据库;Trusted_Connection=Yes“
,并获得以下异常:
System.Data.SqlClient.SqlException(0x80131904):发生文件激活错误。物理文件名“SampleDatabase.mdf”可能不正确。请诊断并更正其他错误,然后重试该操作。无法将文件“SampleDatabase.mdf”附加为数据库“SampleDatabase”。
我迄今为止看到的最佳答案之一:)这将在您在另一台计算机上尝试时中断。而该连接字符串对您的计算机有效,如果您花点时间阅读它,您会注意到它具有硬编码的路径。这是我使用MDF时唯一有效的方法。我正在使用VS2019和.Net Core 3。
"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"
.ConnectionString(@"Data Source=LocalDB)\MSSQLLocalDB;
                    AttachDbFilename="+AppDomain.CurrentDomain.BaseDirectory+"Folder1\\Folder2\\SampleDatabase.mdf" + ";
                    Integrated Security=True;")