>  기사  >  데이터 베이스  >  내 WinForms 목록 상자에 실제 값 대신 \"System.Data.DataRowView\"가 표시되는 이유는 무엇입니까?

내 WinForms 목록 상자에 실제 값 대신 \"System.Data.DataRowView\"가 표시되는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-02 03:55:30788검색

Why Does My WinForms Listbox Display

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 문자열을 표시하도록 지시할 수 있습니다.

해결책:

이 문제를 수정하고 데이터베이스의 실제 값을 표시하려면:

  • DisplayMember를 실제 열 이름으로 설정합니다:
<code class="csharp">lstNames.DisplayMember = "Score";</code>
  • DataRowView 표현을 사용하여 특정 값을 검색합니다.
<code class="csharp">DataRowView drv = (DataRowView)lstNames.SelectedItem;
String valueOfItem = drv["NameAndScore"].ToString();</code>

이 접근 방식을 사용하면 선택한 항목과 연결된 개별 값에 액세스할 수 있으므로 기본 항목으로 작업할 수 있습니다. 필요에 따라 데이터를 수집합니다.

위 내용은 내 WinForms 목록 상자에 실제 값 대신 \"System.Data.DataRowView\"가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.