2016-10-18 3 views
1
dataTable.Columns.Add("TransID"); 
var dr = dataTable.NewRow(); 

for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    dataTable.Rows.Add(dt.Rows[i][1]);     
    vRFCStructure.SetValue("BARCODE", dt.Rows[i][0]); 
    vRFCStructure.SetValue("STATUS", Convert.ToChar(dt.Rows[i][1])); 
    vRFCStructure.SetValue("MBLNR", " "); 
} 

이것은 내 코드입니다. dt.Rows[i][1]의 데이터 테이블에서 부울 값을 얻고 있습니다. bool 값을 0과 1로 다른 테이블에 char으로 보내야합니다.부울을 char로 변환

나는 Convert.ToChar을 시도했지만 작동하지 않았습니다. 내가 생각할 수있는

+0

'Convert.ToChar'를 사용할 때 예외가 있습니까? –

+0

String 오류는 정확히 한 문자 길이 여야합니다. –

+0

이것은 내가 Convert.ToChar –

답변

3

가장 쉬운 방법은 간단하게 다음과 같이 할 수 있습니다 : bool

vRFCStructure.SetValue("STATUS", ((bool)dt.Rows[i][1]) ? '1' : '0'); 

먼저 캐스트를. 그런 다음 부울 값에 따라 1 또는 0을 반환하십시오. 열이 null이면 중단됩니다.

언급 fubo, 당신은뿐만 아니라 BOOL 널 (NULL)에 대한 지원을 추가 할 수 있습니다 : 열이 null

vRFCStructure.SetValue("STATUS", ((bool?)dt.Rows[i][1]) == true ? '1' : '0'); 

경우 0를 반환해야합니다.

+0

@SanthoshRaja - 문제 없습니다. 가장 우아한 해결책은 아니지만 칼럼이 '널 (null)'이 아닌 한 작동해야합니다. – smoksnes

+2

nullable 인 경우'(bool?) dt.Rows [i] [1]) == true로 할 수 있습니까? '1': '0'그래서'null'과'false' 결과는'0'입니다. – fubo

+1

@fubo. 나는 당신의 제안으로 대답을 향상시켰다. – smoksnes