2014-04-09 2 views
2

여러 SQL 문을 실행할 방법이 있는지 궁금합니다. 마찬가지로 나는 가치뿐만 아니라 카운트를 얻고 싶습니다. C#에서 어떻게 할 수 있습니까?C# .Net : 한 번에 두 개의 SQL 문 실행

쿼리 1 :

cmd = new SqlCommand("select count(*) from tblStock where [email protected]", con); // to get count 

질의 2 :

cmd = new SqlCommand("select quantity from tblStock where [email protected]", con);// to get qty 

int count, qty; 

     try 
     { 
      con.Open(); 
      count = (Int32)cmd.ExecuteScalar(); //returns null if doesnt exist 
      qty = (Int32)cmd.ExecuteScalar(); 

     } 

은 가능합니까?

+1

를 사용할 수있다 포머이 경우에있어 있으리라 믿고있어? –

+0

이것을 달성하기위한 최적화 된 코드가 없습니까? – Insafian

+3

응용 프로그램의 병목 현상입니까? 그렇지 않다면 코드를 복잡하게 만드는 것이 현명하지 않습니다. – mellamokb

답변

3

이 이해가되지 않습니다.

tblStock에서 prodName 당 둘 이상의 행이있는 경우 스칼라가 아닌 값의 배열 인 "수량"을 반환하는 것은 무엇입니까?

tblStock에서 prodName 당 하나의 행만있는 경우 항상 1 인 카운트 (*)를 요청하는 것이 좋습니다.

총계 값 ("sum (quantity)", 아마도)을 원하거나 하나의 행만 있기 때문에 계산 (*)이 필요하지 않습니다.

나는 그것이 당신의 SQL 쿼리

select sum(quantity) as sumQty, count(*) as ct from tblStock where prodname = @prodName 
4

하나의 선택 쿼리에서 두 값을 모두 선택할 수 있습니까?

cmd = new SqlCommand("select quantity, count(*) from tblStock where [email protected]", con); 
+0

그리고 나서 어떻게 두 개의 다른 변수에 결과를 저장할 수 있습니까? 'qty'와'count'? – Insafian

+0

'ExecuteReader'를 통해'SqlDataReader'를 사용해야합니다. 사용 예는 다음을 참조하십시오. http://msdn.microsoft.com/en-us/library/9kcbe65k.aspx –

+0

여기에서 열 값을 가져 오는 데 사용되는 인덱싱을 볼 수 있습니다. http://msdn.microsoft.com /en-us/library/system.data.sqlclient.sqldatareader.aspx –

0

당신이 왜 그들에게 하나 하나를 실행하여 SqlDataReader 사용 문

cmd = new SqlCommand(select sum(quantity) QTY, count(*) from tblStock where [email protected]); 

SqlDataReader dr =cmd.ExecuteReader(CommandBehavior.SingleRow); 

var Q=dr[0]; 
var C=dr[1]; 
관련 문제