Gebundenes DataGridView und leere Zeilen

14/10/2008 - 11:19 von Thomas Griepentrog | Report spam
Hallo NG,

ich habe in meiner Anwendung ein DataGridView, welches ich via DataView an
eine Datenbank gebunden habe.

Da zu beginn ja keine Daten in der Tabelle sind, wird mir außer den
Spaltenbezeichnungen nichts angezeigt.

Wie bekomme ich es hin, dass mir ein paar leere Zeilen angezeigt werden.

Mit DataView.AddNew() bekomme ich eine Zeile hinzugefügt. Wenn ich das ein
zweites Mal mache, erscheint zwar auch die 2. Zeile aber bei einem Klick in
die erste Zeile bekomme ich die Exception:

Die Spalte "ID" hat die Einschrànkung, dass sie eindeutig sein muss. Der
Wert '' ist bereites vorhanden."

Anschließend wird die 2. Spalte gelöscht.

Die ID-Spalte muss ich mit anzeigen lassen und sie muss eindeutig sein.

Hat da jemand eine Idee?

Thomas
 

Lesen sie die antworten

#1 Frank Dzaebel
14/10/2008 - 11:55 | Warnen spam
Hallo Thomas,

Wie bekomme ich es hin, dass mir ein paar leere
Zeilen angezeigt werden.



Allgemein, dass eine InsertRow angezeigt wird zum Beispiel
mit "dgv.AllowUserToAddRows = true;" gesetzt ist.
Auch Dein "...View.AddNew();" wird klappen, wenn Du
die ID-Definition korrigiert hast.

Den Fehler mit der ID-Spalte bekommst Du höchstwahrscheinlich,
weil die ID-Spalte unique ist.
Schau Dir das Beispiel an, da ist es über eine
Autoincrement-Definition, die auch aus der DB
kommen könnte, korrigiert:

private void Form1_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn col = dt.Columns.Add("ID", typeof(int));
col.Unique = true;
col.AutoIncrement = true;
col.AutoIncrementSeed = 0;
col.AutoIncrementStep = 1;
dt.Columns.Add("Name");
dt.Columns.Add("Alter", typeof(int));
DataGridView dgv = new DataGridView();
dgv.Dock = DockStyle.Fill;
this.Controls.Add(dgv);
// dgv.AllowUserToAddRows = true;
dgv.DataSource = dt.DefaultView;

const int anzRows = 20;
for (int i=0; i<anzRows; i++)
{
DataRow dr = dt.NewRow();
dt.Rows.Add(dr[0], "Name" + i, i + 42);
}
}


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen