Mengapa Anda Menerima "System.Data.DataRowView" Apabila Memaparkan Nilai dalam WinForms Listbox?
Apabila memaparkan data dalam WinForms Listbox , anda mungkin menghadapi isu di mana bukannya mendapatkan semula nilai sebenar, anda menerima "System.Data.DataRowView." Percanggahan ini dikaitkan dengan beberapa faktor.
Kod yang anda berikan menangkap data daripada pangkalan data menggunakan MySqlDataAdapter dan mengisi Jadual Data dengan hasilnya. Sifat DisplayMember Kotak Senarai kemudiannya ditetapkan kepada lajur tertentu dalam jadual, tetapi sumber data kekal sebagai Jadual Data keseluruhan.
Satu penjelasan yang berpotensi ialah anda tidak menetapkan ValueMember untuk Kotak Senarai secara eksplisit. Sifat ValueMember menentukan nilai yang dikembalikan apabila item dipilih. Jika ValueMember tidak ditetapkan, tingkah laku lalai adalah untuk mengembalikan keseluruhan DataRowView, yang merangkumi semua lajur dan nilainya.
Untuk membetulkan isu ini, tetapkan nama lajur yang diingini kepada sifat ValueMember bagi Kotak Senarai. Tindakan ini akan memastikan bahawa Kotak Senarai memaparkan nilai sebenar daripada lajur yang dipilih dan bukannya objek DataRowView.
Sebagai alternatif, anda boleh mendapatkan semula nilai khusus daripada DataRowView yang dipilih menggunakan teknik berikut:
DataRowView drv = (DataRowView)lstNames.SelectedItem; string valueOfItem = drv["ColumnName"].ToString();
Pendekatan ini memberikan akses kepada mana-mana nilai lajur dalam DataRowView, memberikan fleksibiliti untuk memanipulasi data mengikut keperluan.
Atas ialah kandungan terperinci Mengapa saya mendapat \'System.Data.DataRowView\' dan bukannya nilai sebenar dalam WinForms Listbox saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!