web-dev-qa-db-fra.com

Comment connecter la base de données d'accès en C #

J'ai accès à un fichier de base de données contenant 7 tables mais je ne sais pas comment me connecter et afficher toutes les tables.Si quelqu'un peut m'aider?

c'est mon code mais il ne montre rien

private void button1_Click(object sender, EventArgs e)
{
    OleDbConnection conn = new OleDbConnection();
    String connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Tables.accdb;Persist Security Info=True";
    string sql  = "SELECT Clients  FROM Tables";
    conn.ConnectionString = connection;
    conn.Open();
    DataSet ds = new DataSet();
    DataGridView dataGridView1 = new DataGridView();
    BindingSource bSource = new BindingSource();
    OleDbDataAdapter adapter = new OleDbDataAdapter(sql,conn);
    adapter.Fill(ds);
    //conn.Close();                               
    dataGridView1.DataSource = ds;
8
user2386687

Essayez ce code,

public void ConnectToAccess()
{
    System.Data.OleDb.OleDbConnection conn = new 
        System.Data.OleDb.OleDbConnection();
    // TODO: Modify the connection string and include any
    // additional required properties for your database.
    conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;" +
        @"Data source= C:\Documents and Settings\username\" +
        @"My Documents\AccessFile.mdb";
    try
    {
        conn.Open();
        // Insert code to process data.
    }
        catch (Exception ex)
    {
        MessageBox.Show("Failed to connect to data source");
    }
    finally
    {
        conn.Close();
    }
}

http://msdn.Microsoft.com/en-us/library/5ybdbtte (v = vs.71) .aspx

16
Chamika Sandamal

Vous créez un DataGridView à la volée et définissez le DataSource pour celui-ci. C'est bien, mais ajoutez-vous ensuite DataGridView à la collection Controls du formulaire d'hébergement?

this.Controls.Add(dataGridView1);

Au fait, le code est un peu confus

String connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\Tables.accdb;Persist Security Info=True";
string sql  = "SELECT Clients  FROM Tables";
using(OleDbConnection conn = new OleDbConnection(connection))
{
     conn.Open();
     DataSet ds = new DataSet();
     DataGridView dataGridView1 = new DataGridView();
     using(OleDbDataAdapter adapter = new OleDbDataAdapter(sql,conn))
     {
         adapter.Fill(ds);
         dataGridView1.DataSource = ds;
         // Of course, before addint the datagrid to the hosting form you need to 
         // set position, location and other useful properties. 
         // Why don't you create the DataGrid with the designer and use that instance instead?
         this.Controls.Add(dataGridView1);
     }
}

[~ # ~] modifier [~ # ~] Après les commentaires ci-dessous, il est clair qu'il y a un peu de confusion entre le nom du fichier (TABLES. ACCDB) et le nom de la table CLIENTS.
L'instruction SELECT est définie (dans sa forme de base) comme

 SELECT field_names_list FROM _tablename_

donc la syntaxe correcte à utiliser pour récupérer toutes les données des clients est

 string sql  = "SELECT * FROM Clients";

où le * signifie -> tous les champs présents dans le tableau

5
Steve