Heim > Datenbank > MySQL-Tutorial > Warum zeigt mein WinForms-Listbox „System.Data.DataRowView' anstelle der tatsächlichen Werte an?

Warum zeigt mein WinForms-Listbox „System.Data.DataRowView' anstelle der tatsächlichen Werte an?

Barbara Streisand
Freigeben: 2024-11-02 03:55:30
Original
872 Leute haben es durchsucht

Why Does My WinForms Listbox Display

Warum System.Data.DataRowView statt realer Werte in der WinForms-Listbox?

Bei der WinForms-Entwicklung stoßen wir auf System.Data.DataRowView statt Tatsächliche Werte in einer Listbox können rätselhaft sein. Wenn Sie das zugrunde liegende Problem verstehen, können Sie dieses Problem effizient lösen.

Im bereitgestellten Codeausschnitt:

<code class="csharp">MySqlDataAdapter dAdapter = new MySqlDataAdapter(sqlStr, myConn);
DataTable dTable = new DataTable();
dAdapter.Fill(dTable);
dAdapter.Dispose();
lstNames.DisplayMember = "NameAndScore";
lstNames.DataSource = dTable;</code>
Nach dem Login kopieren

Der Code erscheint korrekt, da die DataTable über einen MySqlDataAdapter gefüllt und dann zugewiesen wird als Datenquelle für das ListBox-Steuerelement. Die DisplayMember-Eigenschaft ist jedoch auf „NameAndScore“ gesetzt, was ein Spaltenalias ist.

Beim Binden von Daten an eine Listbox gibt die DisplayMember-Eigenschaft die Spalte an, die den in der Liste angezeigten Text bereitstellt. Indem Sie es auf den Alias ​​„NameAndScore“ festlegen, weisen Sie das Listenfeld an, die Zeichenfolge System.Data.DataRowView anstelle der tatsächlichen Daten anzuzeigen, da die zugrunde liegende Datenstruktur eine DataRowView-Darstellung der Tabelle ist.

Lösung:

Um dieses Problem zu beheben und die tatsächlichen Werte aus der Datenbank anzuzeigen:

  • Setzen Sie DisplayMember auf den tatsächlichen Spaltennamen:
<code class="csharp">lstNames.DisplayMember = "Score";</code>
Nach dem Login kopieren
  • Rufen Sie die spezifischen Werte mithilfe der DataRowView-Darstellung ab:
<code class="csharp">DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndScore"].ToString();</code>
Nach dem Login kopieren

Mit diesem Ansatz können Sie auf einzelne Werte zugreifen, die mit dem ausgewählten Element verknüpft sind, und so mit dem zugrunde liegenden Element arbeiten Daten nach Bedarf.

Das obige ist der detaillierte Inhalt vonWarum zeigt mein WinForms-Listbox „System.Data.DataRowView' anstelle der tatsächlichen Werte an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage