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