C# Aktuelle Zeile aus DataGridView in DataTable übernehmen


Azatoth

Mitglied
Hallo zusammen,

ich habe folgendes Problem, ich habe eine DataTable die ich über ein DataView Element als DataSource einer DataGridView festgelegt habe. Das Schema der DataTable wird im DataGridView auch angezeigt und die Daten werden auch soweit übernommen. Wenn ich jedoch die DataTable speichere und eine neue Zeile noch den DirtyState hat wird diese Zeile nicht in die DataTable übernommen obwohl ich CommitEdit und EndEdit des DataGridViews aufrufe.

Anmerkung: Zeilen werden über das Steuerelement hinzugefügt (AllowUserToAddRows)

Code:
DataTable m_dtData = null;
DataView m_dvData = null;

public CData()
{
	m_dtData = new DataTable();
	m_dtData.Columns.Add("Nummer", Type.GetType("System.String"));
	m_dtData.Columns.Add("Inhalt", Type.GetType("System.String"));

	m_dvData = new DataView(m_dtData);
	dgvData.DataSource = m_dvData;
}

private void SaveData()
{
	if(dgvData.IsCurrentRowDirty == true)
	{
		dgvData.CommitEdit(DataGridViewDataErrorContexts.Commit);
		dgvData.EndEdit();
	}

	.
	.
	.
}

Hat jemand eine Idee wie ich die Daten der aktuellen Zeile in die DataTable bekomme?
 
Zuletzt bearbeitet:

ksk

Erfahrenes Mitglied
Hy,
probier mal die DataSource wieder an die Table zuzuweisen (nicht geteste).
Code:
private void SaveData()
{
...
    if(dgvData.IsCurrentRowDirty == true)
    {
        dgvData.CommitEdit(DataGridViewDataErrorContexts.Commit);
        dgvData.EndEdit();
     
        m_dtData = m_dvData.DataSource as DataTable;
    }
...
}

Lg
ksk