web-dev-qa-db-fra.com

Comment puis-je me connecter à un MDF fichier de base de données?

J'essaie de connecter une application C # à une base de données MDF pour la première fois et j'ai besoin d'un peu d'aide.

J'ai créé un petit fichier de base de données MDF dans Visual Studio 2010, puis créé un autre projet et importé le fichier dans le projet même.

Je n'essaie pas de me connecter au fichier MDF via un code. Voici le code que j'utilise:

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

Lorsque j'exécute l'application, une exception survient à la ligne où je définis la chaîne de connexion, et l'exception a ce message en haut de la pile:

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

Quelqu'un peut me diriger dans la bonne direction ?

14
Ahmad

Ajouter un espace entre Data Source

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

Le chemin du fichier doit avoir | DataDirectory | qui contient un lien vers "répertoire du projet en cours\App_Data \" ou "répertoire du projet en cours" et récupère le fichier .mdf ..... Placez le fichier .mdf dans l'un de ces emplacements et devrait fonctionner dans visual studio 2010. Et quand vous utilisez l'application autonome sur le système de production, le fichier .mdf doit alors figurer sur le chemin d'accès actuel du fichier exécutable.

10
user1943915

Accédez à Explorateur de serveurs> Votre base de données> Clic droit> propriétés> ConnectionString et copiez la chaîne de connexion puis collez le code copié dans connectiongstring :) 

9
Mahmmoud Qassem

Pour Visual Studio 2015, la chaîne de connexion est la suivante:

"Data Source=(localdb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True"
4
July.Tech
Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes;
1
John Woo
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");

cela fonctionne pour moi ... Y a-t-il un moyen de raccourcir le chemin? comme

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

Solution alternative, où vous pouvez avoir la base de données dans le dossier souhaité dans la solution. Cela a fonctionné pour moi:

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