2011-03-30 8 views
1

현재 코드의 표현을 계산하는 방법 : 나는 SUM-ID ID = 2,하지만 같은 데이터 테이블에 새로운 컬럼으로 추가되는 ID + ID와 같은 표현이데이터 테이블

foreach (Expressions e in expressionObj) 
{ 
    if ((e.Expression != null) && (e.ColumnName != null)) 
    { 
     newtable1.Columns.Add(new DataColumn(e.ColumnName, typeof(decimal), e.Expression)); 
    } 
} 

을 얻은 결과는 (22) 대신 4

답변

4

입니다 보자 :

DataTable dt = new DataTable(); 
dt.Columns.Add(new DataColumn("ID", typeof(decimal))); 
dt.Columns.Add(new DataColumn("SUM-ID", typeof(decimal), "ID + ID")); 
var row = dt.NewRow(); 
row["ID"] = 2; 
dt.Rows.Add(row); 
var val = dt.Rows[0]["SUM-ID"]; 

결과 : 예상대로 val4입니다.
는의 다른 것을 해보자 :

DataTable dt = new DataTable(); 
dt.Columns.Add(new DataColumn("ID", typeof(string))); 
dt.Columns.Add(new DataColumn("SUM-ID", typeof(decimal), "ID + ID")); 
var row = dt.NewRow(); 
row["ID"] = "2"; 
dt.Rows.Add(row); 
var val = dt.Rows[0]["SUM-ID"]; 

결과 : val22

결론입니다 : 귀하의 ID 열이 string 유형이지만, 대신 다른 문자열 연결이 사용되는 숫자 형식이어야합니다.

업데이트 : 당신이 (또는 싶지 않아) 할 수없는 경우는 다음 식 내부 Convert를 사용할 수있는 열의 데이터 유형을 설정 2 * Convert(ID, 'System.Int32')

+0

@ 여기서 문제는, 내가 사용 ChrableWue- XML 파일과 XML의 데이터를 데이터 테이블로 설정합니다. 응 답하는 표에서 표현식을 계산하려고합니다. 일반 코드 여야하며 숫자 형식을 설정하는 방법은 무엇입니까? – psobhan

+0

답변을 업데이트했습니다. – ChrisWue