2014-11-28 4 views
0

SqlBuilder를 사용하여 SELECT 및 WHERE 절이 다른 동적 SQL 문을 작성합니다. 쿼리는 다음과 같이 내장되어 있습니다 : 나는 SqlBuilder 준비했으면DbExtensions SqlBuilder를 사용하여 원시 sql 문 가져 오기

SqlBuilder sb = new SqlBuilder(); 

sb.SELECT("id, name"); 
sb.FROM("products"); 
sb.WHERE("name LIKE {0}", new object[] { "a%" }); 

, 나는 원시 SQL 문을 좀하고 싶습니다. 그러나, toString() 메서드는 다음과 같을 수 문자열을 반환 :

SELECT ID, 이름 제품 FROM WHERE 이름 LIKE {0}

내가 설정 한 매개 변수를 사용하여 원시 SQL을 필요

, 예 : 제품의

SELECT ID, 이름 '은 %'

LIKE 이름이 DbExtensions SqlBuilder를 사용 가능 WHERE?

var query = new SqlBuilder() 
    .SELECT("*") 
    .FROM("Products") 
    .WHERE("Name LIKE {0}", "A%") 

이 당신과 다른 :

+0

당신은 당신이 지금 가지고있는 코드를 표시 할 수 있습니다 멀리? – DavidG

+0

이 SqlBuilder의 출처는 어디입니까? 신경 쓰지 마라. –

답변

1

DbExtensions 도움말 페이지는이 코드를 가지고있다. (나는 그 방법이 params object[]을 서명으로 가지고 있지만 매개 변수가 반드시 당신이 생각하는대로 작동하지 않는다는 것을 안다.) 당신의 WHERE가 그들과 일치하도록 변경한다.

V6에서
DbCommand command = query.ToCommand(SqlClientFactory.Instance); 

, 당신은 데이터베이스를 사용할 수 있습니다 :

1

당신은 ToCommand은 예를 들어, 공급자 공장 또는 연결 인스턴스를 통과 호출 할 필요가

var db = new Database(); 
IDbCommand command = db.CreateCommand(query);