2015-01-28 4 views
0

우선 내가하는 말에 사과합니다. 지금 내 코드에 액세스 할 수 없으며 내 전화에 있습니다.하지만이 게시물을 올리면 나중에 액세스 할 수 있기를 바랍니다. 대답. 내가 알지 못한다면 그 질문을 실제 질문으로 업데이트 할 것입니다. 내 문제의int32와 string 사이에 = 연산을 수행 할 수 없습니다. datarow filter

관련 세부 정보 : 은 내가 DataView를위한 필터 값으로 변수를 사용하는 방법 내부 방법

에 문자열 변수를 전달하고

I에 의해 필터링 오전 DataView를 열은 VARCHAR입니다

나는 INT32 및 문자열로 = 작업을 수행 할 수 없다는 대한 오류를 얻을 수

지금까지 문자열 내 변수가 너무도 문자열로 전달되어 내가 VARCHAR 알고 하나 여야합니다.

필자는 필터링을 올바르게 구문 및 사용법을 알고있어 많은 문제가없는 다른 곳에서도이 필터를 광범위하게 사용하여이 문제를 광범위하게 조사했습니다.

모든 문을 사용할 때 이상한 동작이 발생하며 뷰 열 값이 "유일한 숫자"varchar이거나 변수가 "유일한 숫자"입니까? 그것은 이것이 효과가있을 수있는 이상한 것 같습니다 .... 문자열은 바로 문자열입니까?

나는 열에 대해 convert SQL 명령을 사용하고 변수에 .tostring()을 사용해 보았습니다. 이것은 작동하지 않았고, 그렇더라도 왜 2 문자열이 하나의 int처럼 동작하는지에 대한 설명을 원했습니다. 메모리에서의 같은 구문이 여기 잘못 될 수 있지만

거친 사용은 "내 연구는 지금까지 어떤 사람들은 퍼팅 제안에서

MyDataView.filter = "MyColumnnName = " + MyVariable; 

를 (그 다음입니다 그렇다면 위 참조 ... 그것은 맞습니다 가정) ... + MyVariable + ""; "이 시도하고 동일한 오류가 발생합니다.

감사합니다.

+1

'MyColumnnName = "+ MyVariable"과 ""MyColumnnName = "+ MyVariable +" " –

+0

사이에는 차이가 없습니다. CONVERT 기능을 사용해야합니다. 귀하의 질문에 대한 중복 링크를 참조하십시오 .. –

+2

문자열 값은 작은 따옴표로 묶습니다. 그래서 "MyColumnnName = '"+ MyVariable + "'"' –

답변

0

String 값은 작은 따옴표로 묶어야합니다 (' '). 그래서 같은 :

MyDataView.filter = "MyColumnnName = '" + MyVariable + "'"; 

당신이 그들을 생략 할 수있는 문자열 열이 아니면 :

MyDataView.filter = "MyColumnnName = " + MyVariable; 

하지만 내가 사용하는 거라고는 Linq에 -에 - DataTable을 어쨌든 :

DataTable filtered = dataTable.AsEnumerable() 
    .Where(row => row.Field<string>("MyColumnnName ") == MyVariable) 
    .CopyToDataTable(); 

많이 유지 관리가 쉬우 며 모든 .NET 메소드 (또는 자신의 메소드)를 사용할 수 있으므로 훨씬 더 강력합니다.

+0

우수 답변 !!! 다행히 우리는 결국 거기에 도착했다. 계속 해주셔서 감사합니다 :) – HarborneD