Rumah > Artikel > pangkalan data > Mengapa Kotak Senarai WinForms Saya Menunjukkan \"System.Data.DataRowView\" Daripada Nilai yang Dijangkakan?
Menemui "System.Data.DataRowView" apabila mengharapkan nilai sebenar dalam WinForms Listbox anda membingungkan. Berikut ialah penerokaan yang mendalam tentang puncanya:
Kod anda berinteraksi dengan pangkalan data, mendapatkan semula data menggunakan penyesuai dan penyesuai data MySQL dan menyerahkan data kepada Jadual Data. Ahli Paparan Kotak Senarai ditetapkan kepada "NameAndScore," dan Jadual Data berfungsi sebagai sumber data Kotak Senarai.
Punca utama terletak pada jenis data yang diberikan kepada Kotak Senarai. Apabila mengikat data pada Kotak Senarai, anda biasanya menentukan sama ada rentetan atau objek sebagai Ahli Paparannya. Setiap item dalam Kotak Senarai kemudian dibuat menggunakan nilai DisplayMember daripada data terikat.
Dalam kod anda, DisplayMember ialah "NameAndScore," yang merupakan lajur yang dikira dalam pertanyaan SQL anda. Lajur ini menggabungkan dua nilai, "Nama" dan "Skor," dengan ruang di antaranya. DataTable mengandungi objek DataRow, dan setiap baris mewakili rekod daripada pangkalan data. Apabila Kotak Senarai mengikat kepada Jadual Data, ia memaparkan nilai DisplayMember untuk setiap objek DataRow.
Memandangkan setiap DataRow mewakili keseluruhan baris daripada pangkalan data, nilai DisplayMember bukan sekadar rentetan tetapi DataRowView objek. DataRowView ialah pembalut di sekeliling objek DataRow, menyediakan akses kepada nilai, perhubungan dan sifatnya yang lain.
Untuk menyelesaikan isu ini dan memaparkan nilai "Nama" dan "Skor" sebenar:
<code class="sql">SELECT Name, Score, CONCAT(Name, ' ', Score) as NameAndScore FROM highscore ORDER BY Score DESC</code>
<code class="c#">lstNames.DisplayMember = "Name";</code>
Dengan mengikuti langkah ini, anda boleh memastikan bahawa Kotak Senarai anda memaparkan nilai yang dikehendaki daripada pangkalan data anda. Ingat, adalah penting untuk memahami jenis data yang terlibat semasa mengikat pada Kotak Senarai untuk mengelakkan percanggahan tersebut.
Atas ialah kandungan terperinci Mengapa Kotak Senarai WinForms Saya Menunjukkan \"System.Data.DataRowView\" Daripada Nilai yang Dijangkakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!