2009-12-18 8 views
2

J'ai une fonction pour récupérer des données à partir d'une base de données via un ensemble de donnéesHowto se lient BindingNavigator à datagridview

public DataSet getDataSet(string query) 
    { 
     DataSet ds = new DataSet(); 
     OleDbDataAdapter da1 = new OleDbDataAdapter(query, sybaseconn); 
     OleDbCommand cmd1 = new OleDbCommand(query, sybaseconn); 
     cmd1.CommandType = CommandType.StoredProcedure; 
     da1.SelectCommand = cmd1; 
     da1.Fill(ds, "tbl"); 
     da1.Dispose(); 
     da1 = null; 
     SybaseconnClose(); 
     return ds; 
    } 

Cela fonctionne très bien. Les colonnes sélectionnées sont "Nr" et "Remark" J'appelle cette fonction dans la fonction suivante. Mon datagridview sera lié à l'ensemble de données.

private void LoadData() 
    { 
    dataGridView1.DataSource = null; 
    Application.DoEvents(); 
    TTT3Dal awdal = new TTT3Dal(); 
    DataSet dsAWIA = awdal.getDataSet("select_tbl"); 
    awdal.dsTTT3 = dsAWIA; 
    dataGridView1.DataSource = dsAWIA.Tables["tbl"].DefaultView; 
    bindingSource1.DataMember = "tbl"; 
    //dataGridView1.DataBindings.Add("Text", bindingSource1, "nr"); 
} 

Cela fonctionne également bien. Dans le formulaire j'appelle la dernière fonction et le bindingNavigator.

public Form1() 
    { 
    InitializeComponent(); 
    LoadData(); 
    bindingNavigator1.BindingSource = bindingSource1; 
    } 

fonctionne très bien mais si je décommentez cette ligne
//dataGridView1.DataBindings.Add("Text », bindingSource1, "nr"); Je reçois cette erreur

Impossible de lier la propriété ou la colonne nr sur le DataSource. Nom du paramètre: DataMember

j'ai essayé de résoudre ce problème en ajoutant la ligne

dataGridView1.DataMember = "TBL";

Mais je reçois l'erreur

liste des enfants pour TBL sur le terrain ne peut pas être créé.

Quelqu'un pourrait-il me s'il vous plaît aider à résoudre cela et me aider à lier le datagridview à la BindingNavigator

Répondre

3

Never Mind, je l'ai résolu avec le code suivant

private void LoadData() 
    { 
    dataGridView1.DataSource = null; 
    TTT3Dal awdal    = new TTT3Dal(); 
    DataSet dsAWIA    = awdal.getDataSet("select_tbl"); 
    awdal.dsTTT3    = dsAWIA; 

    BindingNavigator _bindnav = new BindingNavigator(true); 
    bindingSource1.DataSource = dsAWIA; 
    bindingNavigator1.BindingSource = bindingSource1; 

    dataGridView1.DataSource = bindingSource1; 
    } 
Questions connexes