2014-10-10 3 views
0

I가 5 ~ 6 결과를 반환하는 저장 프로 시저 :이 결과 내C# 데이터 집합 복수의 결과

SELECT 1 ..... 

SELECT 2 ..... 

SELECT 3 ..... 

SELECT 4 ..... 

SELECT 5 ..... 

이제 C# 코드에서 내가 공급하고 데이터 집합을.

static DataSet GetData() 
{ 
    DataSet ds_Data = new ds_Data(); 
    IDBManager dbManager = ConnectDB(); 

    try 
    { 
     dbManager.Open(); 
     ds_Data = dbManager.ExecuteDataSet(CommandType.StoredProcedure,"sp_GetData"); 
    } 
    catch (Exception ex) 
    { 
    } 
    finally 
    { 
     dbManager.Close(); 
     dbManager.Dispose(); 
    } 

    return ds_Data; 
} 

이제 DataSet의 각 DataTable에 이름을 지정해야합니다. 예를 들면 어떻게 할 수 있습니까? SELECT 2는 행을 반환하지 않습니다 (다른 SELECT 문이 행을 반환하지 않을 때 발생할 수 있습니다)? SELECT 1은 Table1Name, Table2Name 등등의 SELECT 2로 갈 필요가있다.

+0

행이 없으면 왜 중요합니까? – DavidG

+0

ds_Data.Tables [0]. 테이블 이름 = "T1"; ? – artm

+0

테이블 중 하나가 비어있는 경우 C# 코드는 table [i]를 찾을 수 없거나 이와 유사한 오류를 반환합니다. – ironcurtain

답변

0

내 코드에서 문제가 발견되었습니다. 행이없는 경우에도 DataSet이 제대로 반환됩니다. 문제는 LINQ to DataTable에있었습니다. 테이블 이름을 잘못 지정했습니다. 데이터베이스에서 데이터를 다운로드 한 후 테이블의 이름을 지정하기로했습니다. 모든 것이 지금 작동합니다.

0

내가 아는 한, 저장된 proc로부터, 그렇게 할 수 없다.

그러나 DataSet을 검색하면 이름을 설정 한 다음 그 이름을 사용할 수 있습니다. ds.Tables [0] .TableName = "NameofTable1";

+0

저장 프로 시저에서이 작업을 수행 할 수 없다는 것을 알고 있습니다. 내 문제는 동적으로 테이블 이름을 설정해야한다는 것입니다. SELECT 3이 해당 테이블 Table3Name을 제공하지 않는 행을 반환하지 않는다는 것을 알아야합니다. – ironcurtain

+0

cant는 테이블에 행이 있는지 여부를 확인하기 위해 if-else 로직을 작성합니다. – jadavparesh06

+0

뭔가를 놓칠 수 있지만 내가 발견 한 것, 예를 들어 SELECT에서 행을 반환하지 않을 경우 C#은 SELECT 4를 Table3으로 처리합니다. 그래서 이것은 내 문제입니다. 나는 if-else 로직을 사용하고자 할 때 많은 라인을 가질 것이라고 생각한다. – ironcurtain