2013-02-01 2 views
-2

SQL Server 2008 R2에 대해 일부 sql 쿼리를 수행해야합니다. 명령은 다음과 같습니다.C에서 SQL 명령을 실행하는 가장 좋은 방법 #

C:> sqlcmd –S 
.\APPSDB 
1> use 
Example_database 
2> go 
1> Select SiteName, SiteID, Platform, Description, AdminUser from dbo.ExampleInfo 
2> go 

이 쿼리를 실행하려면 C#으로 콘솔 응용 프로그램을 개발하고 싶습니다. 내 질문은 : 적절한 방법은 무엇입니까? 위의 명령을 SQL 스크립트에 넣고이 스크립트를 실행하는 프로세스를 사용해야합니까, 아니면 SqlConnection과 같은 스탠드 C# SQL API를 사용해야합니까? 예 :

string cmdStr = @"....." //the above command 
using (var connection = new SqlConnection(ConnectionString)) 
{ 
    using (var command = connection.CreateCommand()) 
    { 
     connection.Open(); 
     command.CommandText = cmdStr; 
     using (var reader = command.ExecuteReader()) 
     { 
      do 
      { 
       while (reader.Read()) 
       {    
        Console.WriteLine(reader["SiteName"].ToString()); 
        Console.WriteLine(reader["SiteName"].ToString()); 
        // the rest 
       } 
      Console.WriteLine("--next command--"); 
     } while (reader.NextResult()); 
    } 
} 
+0

당신이해야 할 선택이다

CommandText 속성은이 같은 쿼리를 포함해야합니다. 이 응용 프로그램이 커지기 시작하면 (대부분의 응용 프로그램에서 알 수 있듯이) SQL 연결 개체를 사용하고 sproc을 호출해야합니다. 그렇지 않으면 스크립트가 정상입니다. – JonH

+0

왜 내 qustion을 downvote? 하나의 SQL Server 인스턴스 APPSDB 아래에 여러 데이터베이스가 있습니다. – ericyoung

+1

@JonH meh; sprocs는 과대 평가 될 수있다; 매개 변수가있는 SQL은 대부분의 경우에 완벽하게 적합합니다. –

답변

1

sqlcmd은 필요하지 않습니다.

string cmdStr = @"Select SiteName, SiteID, Platform, Description, AdminUser 
        from dbo.ExampleInfo"; 
+0

하나의 SQL Server 인스턴스 아래에 여러 데이터베이스가 있습니다. "Use Example_Database"또는 "Use_Example_Database1"등을 사용해야한다고 생각합니다. 단일 cmdStr이 작동하지 않을 수 있습니다. – ericyoung

+0

@ericyoung 연결 문자열 속성에 제공된 연결 문자열에 있어야합니다. –

+0

@eric 당신은 전혀 그럴 필요가 없습니다. 그 연결 고리에있는 belogs –