WinForms 목록 상자에서 실제 값 대신 System.Data.DataRowView가 필요한 이유는 무엇입니까?
WinForms 개발에서 System.Data.DataRowView 대신 목록 상자의 실제 값은 혼란스러울 수 있습니다. 근본적인 문제를 이해하면 이 문제를 효율적으로 해결할 수 있습니다.
제공된 코드 조각에서:
<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>
DataTable이 MySqlDataAdapter를 통해 채워지고 할당되므로 코드는 올바른 것으로 나타납니다. ListBox 컨트롤의 데이터 소스로 사용됩니다. 그러나 DisplayMember 속성은 열 별칭인 "NameAndScore"로 설정됩니다.
데이터를 목록 상자에 바인딩할 때 DisplayMember 속성은 목록에 표시되는 텍스트를 제공하는 열을 지정합니다. 별칭 "NameAndScore"로 설정하면 기본 데이터 구조가 테이블의 DataRowView 표현이기 때문에 목록 상자에 실제 데이터 대신 System.Data.DataRowView 문자열을 표시하도록 지시할 수 있습니다.
해결책:
이 문제를 수정하고 데이터베이스의 실제 값을 표시하려면:
<code class="csharp">lstNames.DisplayMember = "Score";</code>
<code class="csharp">DataRowView drv = (DataRowView)lstNames.SelectedItem; String valueOfItem = drv["NameAndScore"].ToString();</code>
이 접근 방식을 사용하면 선택한 항목과 연결된 개별 값에 액세스할 수 있으므로 기본 항목으로 작업할 수 있습니다. 필요에 따라 데이터를 수집합니다.
위 내용은 내 WinForms 목록 상자에 실제 값 대신 \"System.Data.DataRowView\"가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!