2015-01-05 3 views
5

foreach에서 오류가 발생하는 중 Selectdatatable에 사용 중입니다. 여기 Min (5)는 Range 개체에서 max (-1)보다 작거나 같아야합니까?

는 지금까지

내가 Immediate Window 체크 할 때 Convert.ToInt64(drOuter["Id"])이 값 2107362180
foreach (DataRow drOuter in dtLogic.Select("Name='>' OR Name='='")) 
{ 
    foreach (DataRow drInner in dtLogic.Select("ParentId=" + Convert.ToInt64(drOuter["Id"]) + "")) 
    { 

    } 
} 

시도 코드입니다.
그러면 왜 아래 오류가 발생합니까?

enter image description here

답변

11

당신은 문자열을 확인하지 당신이 @Christos 응답으로 대체 할 수 있도록이 편집 한 후 쿼리 expr='string'

foreach (DataRow drInner in dtLogic.Select("ParentId='" + Convert.ToInt64(drOuter["Id"]) + "'")) 
{ 

} 

에 작은 따옴표를 삽입 숫자한다는

Convert.ToInt64(drOuter["Id"]) 

을 말한다 와 함께

drOuter["Id"].ToString() 
+0

예. datatable.Select() 내에서 작은 따옴표를 놓쳤습니다. 열에는 int 값만 포함되어 있으므로 여전히 Convert.ToInt64 (drOuter [ "Id"])가 작동합니다. 고마워요 @faby –

+0

좋아, 작동하지만 왜 설명 할 수 있습니까? –