Prob bei Datagridview mit Combobox

29/09/2008 - 10:15 von Klaus Mayer | Report spam
Anbei ein wenig Testcode:

adapter = new SqlDataAdapter("SELECT PKey, NAM, NAM2, STRAS_ALT,
ORT_ALT," +
"GEB, ReNr, STATUS, KDNR, ANFRAGE_AM, KDTELNR FROM
RET_RECHNUNG " + strWhere, connection);
cmdBldr = new SqlCommandBuilder(adapter);
patDS = new DataSet();
connection.Open();
adapter.Fill(patDS, "acPat");
connection.Close();
pdt.Dispose();
dataGridView1.DataSource = "";
List<string> oArray = new List<string>();
oArray.Add ("Anfrage làuft"); oArray.Add ("Adresse
Aktuell"); oArray.Add ("Adresse falsch");

pdt = patDS.Tables["acPat"];
dataGridView1.DataSource = pdt;
DataGridViewComboBoxColumn txt = new
DataGridViewComboBoxColumn();
txt.HeaderText = "STATUS";
txt.DataSource = oArray;
txt.DisplayMember = "STATUS";
txt.DataPropertyName = "STATUS";
txt.ValueMember = "STATUS";
txt.Width = 100;

dataGridView1.Columns.Add(txt);

Und genau hier kommt eine Argumentexeption, das Feld Status wàre nicht
vorhanden.
Passiert auch, wenn ich mit dataGridView1.Columns[7].Name.ToString()
den Feldnamen ermitteln lasse.
Was mache ich falsch?

Thx 4 Help

Klaus
 

Lesen sie die antworten

#1 Frank Dzaebel
29/09/2008 - 10:40 | Warnen spam
Hallo Klaus,

txt.DisplayMember = "STATUS";



Das ist Murks.
Der Displaymember gibt die Eigenschaft (als String)
einer Instanz der Klasse an. In Deinem Fall
eben ein String, da Du ja eine List<string> hast.

Was mache ich falsch?



Nimm zum Beispiel soetwas (einfachster Fall):


DataGridView dataGridView1 = new DataGridView();

List<string> oArray = new List<string>();
oArray.Add ("Anfrage làuft");
oArray.Add ("Adresse Aktuell");
oArray.Add ("Adresse falsch");

DataGridViewComboBoxColumn txt = new
DataGridViewComboBoxColumn();
txt.HeaderText = "STATUS";
txt.DataSource = oArray;
txt.DefaultCellStyle.NullValue = oArray[0];
txt.Width = 100;
dataGridView1.Columns.Add(txt);
Controls.Add(dataGridView1);


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

Ähnliche fragen