Ich habe eine ComboBox, die mit den Kopfzeilen einer Datenbank gefüllt ist.Filter Ausdruck wird nicht zu einem booleschen Begriff ausgewertet, C#
Wenn ein Benutzer einen Header auswählt, möchte ich die Werte dieser Spalte in einer ListBox anzeigen.
Ich versuche es so zu machen.
private void button3_Click_2(object sender, EventArgs e)
{
listBox1.Items.Clear();
//name of column to display data from
var selectedColumn = comboBox1.Text.ToString();
//dataRow array of data
var selectedColumnItems = aSH_ORDER_DBDataSet1.ASH_PROD_ORDERS.Select(selectedColumn);
//iterate through dataRow and display in listBox
foreach (var columnItem in selectedColumnItems)
{
listBox1.Items.Add(columnItem);
}
}
Wenn ich jedoch eine nicht boolean Typ Spalte wählen sie diesen Fehler:
„Filter Ausdruck auswerten nicht zu einem Booleschen Ausdruck“
Und selbst wenn ich eine boolean Spalte wählen Sie Es zeigt nur den Namen des Programms an. Es scheint jedoch einige Daten von der Datenbank zu bekommen, da es die korrekte Anzahl von Programmnamen von der Anzahl von "wahren" Termen in der Datenbank anzeigt.
Die wichtigen Informationen fehlen hier. Was ist der Inhalt von comboBox1.Text? (Und rufen Sie ToString nicht auf einer String-Eigenschaft, es ist nutzlos) – Steve
"Es zeigt nur den Namen des Programms" Ich denke, es ist der Namespace des Typs der Elemente in 'ASH_PROD_ORDERS', weil Sie das gesamte' columnItem' hinzufügen . Ich denke, Sie müssen entweder ein 'DisplayMember' in Ihrer' listBox1' setzen oder 'listBox1.Items.Add (columnItem.Name);' oder eine beliebige Eigenschaft Ihres ash_prod_order, die Sie anzeigen möchten. –