2012-10-31 2 views
3

나는 열 Xyz이있는 테이블이 있고 그것은 SQL Server의 bit 데이터 유형을 가지고 내가 통해 테이블에서 값을 얻고 2008 년비트 데이터 형식 2008

데이터 어댑터 및 열 Xyz, 나는이 DataSet에 저장하고있어하고 DataGridView가있는 gridview에서 DataSet

에서 내용을 보여줍니다하는 CHECK_BOX 함께/틱없이 표시되어 있지만 매수로 표시 할/체크 박스 대신 텍스트로 판매하십시오.

답변

1

2 가지 방법 중 하나로 처리 할 수 ​​있습니다.

1) 데이터를 약간 반환하는 대신 쿼리에서 캐스팅을 수행하여 값에 따라 문자열로 Buy/Sell을 반환하도록합니다. 그리드가 읽기 전용 인 경우에만 제대로 작동합니다. 데이터를 추가/편집 할 수 있어야하는 경우 구매/판매를 약간으로 변환하고 사용자가 구매/판매에만 들어갈 수 있도록 시행하는 것이 지저분해질 수 있습니다. 데이터를 추가/편집해야하는 경우에는 방법 2를 사용하는 것이 좋습니다.

의 당신의 열 이름이

SELECT CASE WHEN BuySell = CAST(0 AS BIT) THEN 'Buy' ELSE 'Sell' AS BuySell FROM TableName 

2) 수동으로 DataGridView를하고 설치하여 열을 "Autogeneratecolumns"를 해제해야합니다 BuySell라고 입력 비트의입니다 가정 해 봅시다. 그리드가 읽기 전용 인 경우 비트 값에 매핑되는 구매/판매 열의 텍스트 열을 추가합니다. 그런 다음 표의 Cell_Formatting 이벤트에서 비트를 기반으로 값을 업데이트하십시오. 아래의 식으로 뭔가 :

private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
{ 
    if (dgv.Columns[e.ColumnIndex].Name == "buysell") 
    { 
     if (e.Value != null) 
     { 
      if (e.Value.ToString() == "1") 
      { 
       e.Value = "Sell"; 
      } 
      else 
      { 
       e.Value = "Buy"; 
      } 
     } 
     else 
     { 
      e.Value = "Buy"; 
     } 
    } 
} 

그리드가 displaymember와 valuemember와 구매/판매 값을 나타내는 DataTable을 편집, 설정 될 필요가있는 경우. 콤보 상자 열의 데이터 소스로 바인딩합니다. 이제 데이터를로드하면 콤보 상자에 Buy/Sell가 제대로 표시되고 드롭 다운에서 값을 선택하면 새 행에 대해 기본 데이터 소스에 올바른 비트 값이 채워집니다.

+0

첫 번째 방법에 대한 샘플 쿼리를 제공 할 수 있습니까? – sarathprasath

+0

샘플 검색어로 업데이트 된 답변 – UWSkeletor

+0

감사합니다 .... 정말 많이 도움이되었습니다 ... – sarathprasath

관련 문제