2012-01-10 2 views
4

데이터베이스 서버에 많은 쿼리를 만드는 C# 콘솔 응용 프로그램이 있습니다.C# 응용 프로그램 내에서 SQL 쿼리 서식을 지정하는 올바른 방법

나는 자주 SQL을 수정해야하고, SQL 때마다 포맷 할 필요없이 간단하게 복사/내 C# 소스로 내 SQL 편집기에서 SQL을 붙여 싶습니다.

현재 SQL은 ... 모두 한 줄에 다음과 같은 : 등,

OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(@"SELECT * FROM mytable ORDER BY Server;", connSSM); 

는 SQL 조인 테이블의 많은 더 이상 위보다

내가 싶습니다 서식을 유지하지만, 누군가가 권장 사항 및 예제가 있다면 정말 돌아가서 등, 각 라인 주위에

을 따옴표를 추가하고 싶지 않아요, 그것은 감사하겠습니다.

+0

SQL을 분리하기 위해 저장 프로 시저를보다 쉽게 ​​사용할 수 있습니다. http://msdn.microsoft.com/en-us/library/ms345415.aspx – Stefan

+0

동의합니다. 나는 DB2를 사용하고 있으며 이것은 간단한 유틸리티 응용 프로그램이며 SP를 사용하면 과용 될 것입니다. 또한 DB2는 사용자에게 친숙하지 않습니다. 끔찍한 제품. – user500741

답변

7

를 들어

나는 이런 식으로 작업을 수행합니다

string sql = @" 
    SELECT * 
    FROM mytable 
    ORDER BY Server"; 
OleDbDataAdapter da_ssm_servers = new OleDbDataAdapter(sql, connSSM); 
+0

추가 간격, 패딩은 어떤 차이가 있습니까? DB2를 사용하고 있는데 SQL 구문에 매우 민감한 것 같습니다. 싫다. – user500741

+0

db와 관련이있을 수 있습니다. 나는 DB2에 대한 경험이 없다. 그것을 시도하고 볼 수 있습니다. – RedFilter

+0

이와 같이 SQL 문을 포맷합니다. SQL Server 2000 및 SQL Server 2005에 대해 정상적으로 실행됩니다. SQL Server 2008에 대해서는 실행하지 않았지만 여분의 간격이 효과가 없기를 기대합니다. –

0

@ 구문을 사용하는 한 여러 줄의 SQL을 사용할 수 있습니다. 예를

string sql = @"select 
        colA, 
        colB, 
        colC 
       from 
        tableX 
        inner join tableY 
        on tableX.colA = tableY.colA 
       where 
        colB > 20;" 
2

나의 추천은 사용하는 것처럼 멀리 임시 쿼리에서 머물 저장 프로 시저을 활용하는 것입니다. 그러면 디자인을 분리 할 수있을뿐 아니라 호출을 저장 프로 시저 이름 및 가능한 매개 변수로 제한 할 수 있습니다. 당신이 광고 사용해야하는 경우

는 그러나 임의 쿼리는 @로 접두사와 따옴표의 각 행을 둘러싸고하지 않고 여러 줄에 걸쳐 할 수있을 것입니다.

+0

감사합니다 -이 응용 프로그램은 감사/변경 목적으로 SVN을 확인할 수 있도록 파일에 일부 stuf를 덤프하는 간단한 유틸리티 앱입니다. – user500741

0

코드가 정상적으로 작동하는 것으로 보입니다. @로 문자열을 시작하면 축 어적 문자열을 사용합니다. 줄 바꿈 및 서식이 유지되므로 각 줄을 따옴표로 묶을 필요가 없습니다. 마지막 인용구가 필요합니다.

관련 문제