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

时间:2012-01-19 13:08:06

标签: c# sql database visual-studio-2010

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

我在Visual Studio 2010中创建了一个小型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'.

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

7 个答案:

答案 0 :(得分:27)

Data Source

之间添加空格
 con.ConnectionString = @"Data Source=.\SQLEXPRESS;
                          AttachDbFilename=c:\folder\SampleDatabase.mdf;
                          Integrated Security=True;
                          Connect Timeout=30;
                          User Instance=True";

答案 1 :(得分:10)

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

文件路径应该有 | DataDirectory | ,它实际上链接到“当前项目目录\ App_Data \”或“当前项目目录”并获取.mdf文件.....放置.mdf在这些地方中的任何一个,并且应该在visual studio 2010中工作。当你在生产系统上使用独立应用程序时,那么可执行文件所在的当前路径应该有.mdf文件。

答案 2 :(得分:9)

转到服务器资源管理器>您的数据库>右键单击>属性> ConnectionString并复制连接字符串并将复制的内容复制到connectiongstring代码:)

答案 3 :(得分:5)

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

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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");

答案 6 :(得分:0)

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

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