Datenbindung an DataGridView



  • Hallo nochmal,

    ich habe ein neues Problem. Ich habe ein DataGridView erstellt und möchte diese einzelnen Zeilen an Textboxen binden, dass sobald sich meine Werte in den Spalten sich ändert dies auch in den Texboxen angezeigt wird.

    Die Tabelle:

    /*** Spalten hinzufügen ***/
            DataGridViewTextBoxColumn ^spalte1 = gcnew DataGridViewTextBoxColumn();
            spalte1->Name = "Messwert";
            spalte1->HeaderText = "sap";
            dgv_Messdaten->Columns->Add(spalte1);
    
            DataGridViewTextBoxColumn ^spalte2 = gcnew DataGridViewTextBoxColumn();
            spalte2->Name = "Messwert2";
            spalte2->HeaderText = "sa";
            dgv_Messdaten->Columns->Add(spalte2);
    

    Versuch der Datenbindung

    // Datanbindung
    bs = gcnew BindingSource();
    //dgv_Messdaten->DataSource = bs;
    bs->DataSource = dgv_Messdaten;
    //bs->DataMember ="Messwert";
    
    tb_Spalte1->DataBindings->Add("Text", bs, "sap");
    

    Folgende Fehlermeldung:

    Eine nicht behandelte Ausnahme des Typs "System.ArgumentException" ist in System.Windows.Forms.dll aufgetreten.

    Zusätzliche Informationen: An die Eigenschaft oder Spalte sap für die DataSource kann nicht gebunden werden.

    Vielleicht kann mir ja jemand einen Tipp geben was ich falsch mache.

    MfG
    Mister X



  • Könne mir jemand bitte helfen. Ich bekomme es nicht hin, dass ich einzelne Spalten meiner DataGridView so mit einer Datenbindung koppele das diese zum Beispiel in einer Textbos angezeigt werden.



  • Gib mal mehr Infos.
    Du kannst keine Spalten einzeln an die DB binden, sondern nur das DataGird selbst. Macht so auch keinen Sinn.
    Mit was für einer DB arbeitest Du?
    MDB oder MDF?
    Was genau hast Du vor?
    Vielleicht kann man Dein Problem anders lösen.

    Gruß,

    Doug_HH



  • Mein Fehler!

    Versuch war eine XML Datei in ein DataGridView einlesen und einige Spalten an Texboxen zu binden.

    Da es so nicht funktioniert habe ich jetzt eingesehen.
    Neuer Versuch ist, die XML über "StreamReader" einzulesen und dann in eine DataTable zu speichern. Diese Datatable kann ich dann doch an einen DatGridview oder eine Textbox binden?

    MfG
    Mister x



  • Hallo Nochmal. Irgendwie ist der Wurm bei mir drin. Ich bekomme es einfach nicht hin. Ich habe jetzt eine DataTable und DataSet erstellt um darin Werte einzulesen und dies dann an einer DataGridView zu binden. Doch ich bekomme immer folgenden Fehler :error C2064: Ausdruck ergibt keine Funktion, die 1 Argumente übernimmt!
    wenn ich Datan zur DataTable einfügen möchte. Kann mir bitte jemand einen Tipp geben waran es liegt?

    Code:

    // Instanz vom DataTable
    dt = gcnew DataTable("Tabelle");
    // Neue Zeilen definieren
    DataColumn^ sap = gcnew DataColumn();
    sap->DataType = System::Type::GetType("System::String");
    sap->ColumnName = "sap";
    // Zeile zum DataTable hinzufügen
    dt->Columns->Add(sap);
    DataColumn^ sa = gcnew DataColumn();
    sa->DataType = System::Type::GetType("System::String");
    sa->ColumnName = "sa";
    // Zeile zum DataTable hinzufügen
    dt->Columns->Add(sa);
    
    // Instanz vom DataSet
    ds = gcnew DataSet;
    // Bindung an das DataTable
    ds->Tables->Add(dt);
    

    Wenn Button gedrückt wird

    //Datei einbinden
    CXML_einlesen^fr = gcnew CXML_einlesen();
    // Referenz zuweisen
    List<CXML_Struktur^>^temp = fr->XML_Datei_auswerten("Test.xml");
    
    //Variable für Zeile
    DataRow^ row;
    
    for (int i = 0; i < temp->Count; i++) 
    {
    //Erstelle neue Datanzeilen Objekte und füge dem DataTable zu
     row = dt->NewRow();
     row("sap") = "Hallo" ; //Test-> Fehlermeldung
     row("sa")	= "HA"; //Test-> Fehlermeldung;
     dt->Rows->Add(row);
    }
    if( dt !=nullptr)
    {
        dgv_Messdaten->DataSource = dt;	
    }
    else
    {
        MessageBox::Show("Keine Daten enthalten !");
    }
    }
    

    Vielen Dank im voraus.
    MfG
    Mister X



  • Hallo nochmal. Hab meine zwei Fehler gefunden:

    1: sap->DataType = System::Type::GetType("System.String");
    2: row["sap"] = "Hallo";

    Nur habe ich jetzt noch ein weiteres Problem. Wie binde ich jetzt ein Eintrag an eine Texbox?

    tb_Spalte1->DataBindings->Add("Text", row["sap"] ?, ?);
    

    MfG
    Mister X



  • Oh man heute ist nicht mein Tag.

    Folgender Code funktioniert:

    tb_Spalte1->DataBindings->Add("Text", dt->Rows[0]["sap"], "");
    

Anmelden zum Antworten