2012-03-12 3 views
1

Linq를 C#에서 사용하고 있습니다. 내가이C# 함수에서 Linq 쿼리 생성

public static void AutoSuggest(TextBox t, string columnName, string tableName) 
{ 

} 
  • 톤처럼 내 자신의 기능을 정의한 텍스트 상자
  • 의 ColumnName의에 refrence 특정 열
  • TABLENAME의 이름은 특정 테이블의 이름입니다입니다

이 사용자 정의 함수에서 매개 변수를 사용하여 데이터베이스의 지정된 테이블에서 지정된 열 데이터를 가져 오려고합니다.

그래서 어떻게 Linq에서이 쿼리를 생성해야합니까?

+0

이 먼저 자신을 시도해보십시오 등 주사의 위험을 방지 할

var values = dataContext.SomeTable.Select(x => x.SomeProperty) .Distinct().ToList(); 

..... 당신이 만약 오류가 발생하면 오류를 지정하십시오 .... –

+0

특정 행이 값에 있습니까? – Jodrell

+0

데이터베이스 모델을 만들었습니까? – Jodrell

답변

4

LINQ를 사용하려면 소스 및 선택기에 대해 더 잘 이야기해야합니다. 일부는 IQueryable<T>이고, 어떤 것은 Expression<Func<T,string>>입니다. 당신이 열/테이블 이름을 사용하려면, 먼저 그들은 흰색 상장 (이제까지 웹 요청, 말에서 이름을 허용하지 않음)해야하지만 코드는 단순히 다음과 같습니다

var values = dataContext.ExecuteQuery<string>("select distinct [" + columnName 
     + "] from [" + tableName +"]").ToList(); 

이것은 아주 순진한 접근법이지만 기본 사용법을 보여줍니다. 그러면 데이터 바인딩이 정상적으로됩니다. 그러나, 나는 예를 들어, 호출 코드 그냥 할 훨씬 더 경사 것 :

+0

@LukeMcGregor 테이블/열 이름에 매개 변수를 사용할 수 없습니다. –