2011-05-11 3 views
1

저는 신인입니다. 내 질문에 의해 증명되었고, 특정 하위 값과 연관된 행을 찾기 위해 datareader를 사용하고 있습니다. 나는 while (dr.read) 루프를 사용하고 각 사례 (아래 코드)에서 다른 독자와 switch case 문을 중첩 시켰지만 예외를 던졌습니다. "이미 닫혀 있어야하는이 명령과 관련된 열린 데이터 판독기가 이미 있습니다." 배열 문 또는 목록에 첫 번째 datareader (관련 행 where subId = x)의 결과를 저장 한 다음 switch 문을 입력하기 전에 해당 판독기를 닫는 방법이 있습니까? (필자는 어레이가 작동한다고 상상했던 정도로 배열을 이해하지만 구문이 어떻게 생겼는지 실마리가 없습니다.) 내부적으로는 소비 DataReader를 들어 어쨌든SqlDataReader에서 반환 된 결과를 저장하는 방법?

지속 된 DataReader가있다

string viewQuery = "SELECT ProductId FROM SubmissionProducts WHERE SubmissionId =" + x; 



      using (SqlCommand viewcmd = new SqlCommand(viewQuery, editConn)) 
      { 
       SqlDataReader dr = viewcmd.ExecuteReader(); 
       while (dr.Read()) 
       { 
        switch(dr.GetInt32(0)) 
        { 
         case 1: 
          PanelEplShow.Visible = true; 
          using (SqlCommand eplviewcmd = new SqlCommand(epl, editConn)) 
          { 
           SqlDataReader epldr = eplviewcmd.ExecuteReader(); 
           epldr.Read(); 
           LblEplShowEntity.Text = epldr.GetString(0); 
           LblEplShowTotalEmpl.Text = epldr.GetInt32(1).ToString(); 
           LblEplShowCalEmpl.Text = epldr.GetInt32(2).ToString(); 
           LblEplShowMichEmpl.Text = epldr.GetInt32(3).ToString(); 
           LblEplShowNyEmpl.Text = epldr.GetInt32(4).ToString(); 
           LblEplShowNjEmpl.Text = epldr.GetInt32(5).ToString(); 
           LblEplShowPrimEx.Text = epldr.GetInt32(6).ToString(); 
           LblEplShowLim.Text = epldr.GetInt32(7).ToString(); 
           LblEplShowPrem.Text = epldr.GetInt32(8).ToString(); 
           LblEplShowWage.Text = epldr.GetInt32(9).ToString(); 
           LblEplShowInvestCost.Text = epldr.GetInt32(10).ToString(); 
           epldr.Close(); 
          } 
          break; 
         case 2: 
          PanelProfShow.Visible = true; 
          using (SqlCommand profcmd1 = new SqlCommand(prof, editConn)) 
          { 
           SqlDataReader profdr = profcmd1.ExecuteReader(); 
           profdr.Read(); 
           LblProfShowPrimEx.Text = profdr.GetInt32(0).ToString(); 
           LblProfShowType.Text = profdr.GetInt32(1).ToString(); 
           LblProfShowLim.Text = profdr.GetInt32(2).ToString(); 
           LblProfShowRetention.Text = profdr.GetInt32(3).ToString(); 
           LblProfShowAtt.Text = profdr.GetInt32(4).ToString(); 
           LblProfShowPrem.Text = profdr.GetInt32(5).ToString(); 
           LblProfShowSublim.Text = profdr.GetInt32(5).ToString(); 
           LblProfShowEntity.Text = profdr.GetInt32(6).ToString(); 
           profdr.Close(); 
          } 
          break; 
         case 3: 
          PanelCrimeShow.Visible = true; 
          using (SqlCommand crimcmd = new SqlCommand(crim, editConn)) 
          { 
           SqlDataReader crimdr = crimcmd.ExecuteReader(); 
           crimdr.Read(); 
           LblCrimeShowEntity.Text = crimdr.GetString(0); 
           LblCrimeShowEmpl.Text = crimdr.GetInt32(1).ToString(); 
           LblCrimeShowPrimEx.Text = crimdr.GetInt32(2).ToString(); 
           LblCrimeShowLimA.Text = crimdr.GetInt32(3).ToString(); 
           LblCrimeShowDedA.Text = crimdr.GetInt32(4).ToString(); 
           LblCrimeShowPremA.Text = crimdr.GetInt32(5).ToString(); 
           LblCrimeShowLimB.Text = crimdr.GetInt32(6).ToString(); 
           LblCrimeShowDedB.Text = crimdr.GetInt32(7).ToString(); 
           LblCrimeShowPremB.Text = crimdr.GetInt32(8).ToString(); 
           crimdr.Close(); 
          } 
          break; 
         case 4: 
          PanelFidShow.Visible = true; 
          using (SqlCommand fidcmd = new SqlCommand(fid, editConn)) 
          { 
           SqlDataReader fiddr = fidcmd.ExecuteReader(); 
           fiddr.Read(); 
           LblFidShowEntity.Text = fiddr.GetString(0); 
           LblFidShowPrimEx.Text = fiddr.GetInt32(1).ToString(); 
           LblFidShowLim.Text = fiddr.GetInt32(2).ToString(); 
           LblFidShowSir.Text = fiddr.GetInt32(3).ToString(); 
           LblFidShowAtt.Text = fiddr.GetInt32(4).ToString(); 
           LblFidShowPrem.Text = fiddr.GetInt32(5).ToString(); 
           LblFidShowSublim.Text = fiddr.GetInt32(6).ToString(); 
           fiddr.Close(); 
          } 
          break; 
         case 5: 
          PanelNotShow.Visible = true; 
          using (SqlCommand notcmd = new SqlCommand(not, editConn)) 
          { 
           SqlDataReader notdr = notcmd.ExecuteReader(); 
           notdr.Read(); 
           LblNotShowPrimEx.Text = notdr.GetInt32(0).ToString(); 
           LblNotShowCov.Text = notdr.GetInt32(1).ToString(); 
           LblNotShowSharedLim.Text = notdr.GetInt32(2).ToString(); 
           LblNotShowTradLim.Text = notdr.GetInt32(3).ToString(); 
           LblNotShowTradSir.Text = notdr.GetInt32(4).ToString(); 
           LblNotShowEplLim.Text = notdr.GetInt32(5).ToString(); 
           LblNotShowEplSir.Text = notdr.GetInt32(6).ToString(); 
           LblNotShowEplPrem.Text = notdr.GetInt32(7).ToString(); 
           LblNotShowSublim.Text = notdr.GetInt32(8).ToString(); 
           notdr.Close(); 
          } 
          break; 
         case 6: 
          PanelPrivShow.Visible = true; 
          using (SqlCommand privcmd = new SqlCommand(priv, editConn)) 
          { 
           SqlDataReader privdr = privcmd.ExecuteReader(); 
           privdr.Read(); 
           LblPrivShowPrimEx.Text = privdr.GetInt32(0).ToString(); 
           LblPrivShowSharedLim.Text = privdr.GetInt32(1).ToString(); 
           LblPrivShowTradLim.Text = privdr.GetInt32(2).ToString(); 
           LblPrivShowTradAtt.Text = privdr.GetInt32(3).ToString(); 
           LblPrivShowTradSir.Text = privdr.GetInt32(4).ToString(); 
           LblPrivShowTradPrem.Text = privdr.GetInt32(5).ToString(); 
           LblPrivShowEplLim.Text = privdr.GetInt32(6).ToString(); 
           LblPrivShowEplSir.Text = privdr.GetInt32(7).ToString(); 
           LblPrivShowEplAtt.Text = privdr.GetInt32(8).ToString(); 
           LblPrivShowEplPrem.Text = privdr.GetInt32(9).ToString(); 
           LblPrivShowEplWage.Text = privdr.GetInt32(10).ToString(); 
           LblPrivShowEplSublim.Text = privdr.GetInt32(11).ToString(); 
           LblPrivShowFidLim.Text = privdr.GetInt32(12).ToString(); 
           LblPrivShowFidSir.Text = privdr.GetInt32(13).ToString(); 
           LblPrivShowFidAtt.Text = privdr.GetInt32(14).ToString(); 
           LblPrivShowFidPrem.Text = privdr.GetInt32(15).ToString(); 
           LblPrivShowFidSublim.Text = privdr.GetInt32(16).ToString(); 
           privdr.Close(); 
          } 
          break; 
         case 7: 
          PanelPubShow.Visible = true; 
          using (SqlCommand pubcmd = new SqlCommand(pub, editConn)) 
          { 
           SqlDataReader pubdr = pubcmd.ExecuteReader(); 
           pubdr.Read(); 
           LblPubShowMark.Text = pubdr.GetInt32(0).ToString(); 
           LblPubShowTick.Text = pubdr.GetInt32(1).ToString(); 
           LblPubShowTrad.Text = pubdr.GetInt32(2).ToString(); 
           LblPubShowDic.Text = pubdr.GetInt32(3).ToString(); 
           LblPubShowLim.Text = pubdr.GetInt32(4).ToString(); 
           LblPubShowSecSir.Text = pubdr.GetInt32(5).ToString(); 
           LblPubShowAllSir.Text = pubdr.GetInt32(6).ToString(); 
           LblPubShowPrem.Text = pubdr.GetInt32(7).ToString(); 
           LblPubShowPrimEx.Text = pubdr.GetInt32(8).ToString(); 
           LblPubShowAtt.Text = pubdr.GetInt32(9).ToString(); 
           LblPubShowSublim.Text = pubdr.GetInt32(10).ToString(); 
           pubdr.Close(); 
          } 
          break; 
         default: 
          break; 
        } 
       } 
       dr.Close();` 

답변

2

을 . 닷넷 결함이 있는지 또는 중첩 된 리더를 사용할 때 필요한 조정인지 여부는 알 수 없지만 내 저장된 연결 문자열에 MultipleActiveResultSets="true"을 추가해야했습니다. 그 후에 모든 것이 제대로 작동하고 데이터 테이블이 필요 없습니다. 대답 해준 모든 사람들에게 많은 감사를드립니다. 위 질문에 대한 답이 유용 할 수도 있지만, 앞으로이 질문이 유용 할 경우, 전체 코드를 게시하여 저에게 도움이되는 것을 보여 드리겠습니다. 주의 사항 :이 글이 필요한만큼 새로 작성한 사용자라면 검색어를 PARAMETERIZE하십시오. 이 사이트는 먼저 다른 것들을 배우기 위해 매개 변수화하는 것을 피하도록 지시받은 훈련 프로젝트 였지만 가장 중요했습니다. 바비 테이블 ftw.

다음은 코드입니다.

using System; 
using System.Text; 
using System.Collections.Generic; 
using System.Linq; 
using System.Data; 
using System.Data.Sql; 
using System.Data.SqlClient; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

public partial class View : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

     string x = Request.QueryString["SubmissionId"]; 
     string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
     string editCustQuery = "SELECT CustName, SicNaic, CustCity, CustAdd, CustState, CustZip FROM Customer WHERE SubId =" + x; 
     string editBroQuery = "SELECT BroName, BroAdd, BroCity, BroState, BroZip, EntityType FROM Broker WHERE SubId =" + x; 
     string editSubQuery = "SELECT Coverage, CurrentCoverage, PrimEx, Retention, EffectiveDate, Commission, Premium, Comments FROM Submission WHERE SubmissionId =" + x; 
     string epl = "SELECT Entity, Employees, CA, MI, NY, NJ, Primex, EplLim, EplSir, Premium, Wage, Sublim FROM EPL WHERE SubmissionId =" + x; 
     string prof = "SELECT Primex, EO, Limit, Retention, Att, Prem, Sublim, Entity FROM ProfessionalEO WHERE SubmissionId =" + x; 
     string crim = "SELECT Entity, Employees, PrimEx, LimA, DedA, PremA, LimitB, DedB, PremB FROM CrimeFidelity WHERE SubmissionId =" + x; 
     string fid = "SELECT Entity, PrimEx, Limit, SIR, Att, Premium, Sublim FROM Fiduciary WHERE SubmissionId =" + x; 
     string not = "SELECT PrimEx, Coverage, SharedSepLim, TradLim, TradDoSir, EplLim, EplSir, EplPrem, EplSublim FROM NotProfit WHERE SubmissionId =" + x; 
     string priv = "SELECT Primex, SharedSepLim, TradLim, TradAtt, TradDoSir, TradPrem, EplLim, EplSir, EplAtt, EplWage, EplPrem, EplInvest, FidLim, FidSir, FidAtt, FidPrem, FidSublim FROM PrivateCompany WHERE SubmissionId =" + x; 
     string pub = "SELECT Market, Ticker, TradABC, DIC, Limit, SecuritiesSir, OtherSir, Premium, PrimEx, Att, Sublim FROM PublicDO WHERE SubmissionId =" + x; 
     using (SqlConnection editConn = new SqlConnection(connectionString)) 
     { 
      editConn.Open(); 

      using (SqlCommand CustCommand = new SqlCommand(editCustQuery, editConn)) 
      { 

       SqlDataReader dr = CustCommand.ExecuteReader(); 
       dr.Read(); 
       LblCustName.Text = dr.GetString(0); 
       LblSicNaic.Text = dr.GetString(1); 
       LblCustCity.Text = dr.GetString(2); 
       LblCustAddress.Text = dr.GetString(3); 
       LblCustState.Text = dr.GetString(4); 
       LblCustZip.Text = dr.GetInt32(5).ToString(); 
       dr.Close(); 
      } 
      using (SqlCommand BroCommand = new SqlCommand(editBroQuery, editConn)) 
      { 
       SqlDataReader dr = BroCommand.ExecuteReader(); 
       dr.Read(); 
       LblBroName.Text = dr.GetString(0); 
       LblBroAddress.Text = dr.GetString(1); 
       LblBroCity.Text = dr.GetString(2); 
       LblBroState.Text = dr.GetString(3); 
       LblBroZip.Text = dr.GetInt32(4).ToString(); 
       LblEntity.Text = dr.GetString(5); 
       dr.Close(); 
      } 
      using (SqlCommand SubCommand = new SqlCommand(editSubQuery, editConn)) 
      { 
       SqlDataReader dr = SubCommand.ExecuteReader(); 
       dr.Read(); 
       LblCoverage.Text = dr.GetInt32(0).ToString(); 
       LblCurrentCoverage.Text = dr.GetInt32(1).ToString(); 
       LblPrimEx.Text = dr.GetInt32(2).ToString(); 
       LblRetention.Text = dr.GetInt32(3).ToString(); 
       LblEffectDate.Text = dr.GetDateTime(4).ToString(); 
       LblCommission.Text = dr.GetInt32(5).ToString(); 
       LblPremium.Text = dr.GetInt32(6).ToString(); 
       LblComments.Text = dr.GetString(7); 
       dr.Close(); 
       HyperLink1.NavigateUrl = "~/ViewEdit.aspx?SubmissionId=" + x; 
      } 
       string viewQuery = "SELECT ProductId FROM SubmissionProducts WHERE SubmissionId =" + x; 

       SqlCommand viewcmd = new SqlCommand(viewQuery, editConn); 

       SqlDataReader drRows = viewcmd.ExecuteReader(); 
       while (drRows.Read()) 
        { 
         switch (drRows.GetInt32(0)) 
         { 
          case 1: 
           PanelEplShow.Visible = true; 
           using (SqlCommand eplviewcmd = new SqlCommand(epl, editConn)) 
           { 
            SqlDataReader epldr = eplviewcmd.ExecuteReader(); 
            epldr.Read(); 
            LblEplShowEntity.Text = epldr.GetString(0); 
            LblEplShowTotalEmpl.Text = epldr.GetInt32(1).ToString(); 
            LblEplShowCalEmpl.Text = epldr.GetInt32(2).ToString(); 
            LblEplShowMichEmpl.Text = epldr.GetInt32(3).ToString(); 
            LblEplShowNyEmpl.Text = epldr.GetInt32(4).ToString(); 
            LblEplShowNjEmpl.Text = epldr.GetInt32(5).ToString(); 
            LblEplShowPrimEx.Text = epldr.GetInt32(6).ToString(); 
            LblEplShowLim.Text = epldr.GetInt32(7).ToString(); 
            LblEplShowSir.Text = epldr.GetInt32(8).ToString(); 
            LblEplShowPrem.Text = epldr.GetInt32(9).ToString(); 
            LblEplShowWage.Text = epldr.GetInt32(10).ToString(); 
            LblEplShowInvestCost.Text = epldr.GetInt32(11).ToString(); 
            epldr.Close(); 
           } 
           break; 
          case 2: 
           PanelProfShow.Visible = true; 
           using (SqlCommand profcmd = new SqlCommand(prof, editConn)) 
           { 
            SqlDataReader profdr = profcmd.ExecuteReader(); 
            profdr.Read(); 
            LblProfShowPrimEx.Text = profdr.GetInt32(0).ToString(); 
            LblProfShowType.Text = profdr.GetString(1); 
            LblProfShowLim.Text = profdr.GetInt32(2).ToString(); 
            LblProfShowRetention.Text = profdr.GetInt32(3).ToString(); 
            LblProfShowAtt.Text = profdr.GetInt32(4).ToString(); 
            LblProfShowPrem.Text = profdr.GetInt32(5).ToString(); 
            LblProfShowSublim.Text = profdr.GetInt32(6).ToString(); 
            LblProfShowEntity.Text = profdr.GetString(7); 
            profdr.Close(); 
           } 
           break; 
          case 3: 
           PanelCrimeShow.Visible = true; 
           using (SqlCommand crimcmd = new SqlCommand(crim, editConn)) 
           { 
            SqlDataReader crimdr = crimcmd.ExecuteReader(); 
            crimdr.Read(); 
            LblCrimeShowEntity.Text = crimdr.GetString(0); 
            LblCrimeShowEmpl.Text = crimdr.GetInt32(1).ToString(); 
            LblCrimeShowPrimEx.Text = crimdr.GetInt32(2).ToString(); 
            LblCrimeShowLimA.Text = crimdr.GetInt32(3).ToString(); 
            LblCrimeShowDedA.Text = crimdr.GetInt32(4).ToString(); 
            LblCrimeShowPremA.Text = crimdr.GetInt32(5).ToString(); 
            LblCrimeShowLimB.Text = crimdr.GetInt32(6).ToString(); 
            LblCrimeShowDedB.Text = crimdr.GetInt32(7).ToString(); 
            LblCrimeShowPremB.Text = crimdr.GetInt32(8).ToString(); 
            crimdr.Close(); 
           } 
           break; 
          case 4: 
           PanelFidShow.Visible = true; 
           using (SqlCommand fidcmd = new SqlCommand(fid, editConn)) 
           { 
            SqlDataReader fiddr = fidcmd.ExecuteReader(); 
            fiddr.Read(); 
            LblFidShowEntity.Text = fiddr.GetString(0); 
            LblFidShowPrimEx.Text = fiddr.GetInt32(1).ToString(); 
            LblFidShowLim.Text = fiddr.GetInt32(2).ToString(); 
            LblFidShowSir.Text = fiddr.GetInt32(3).ToString(); 
            LblFidShowAtt.Text = fiddr.GetInt32(4).ToString(); 
            LblFidShowPrem.Text = fiddr.GetInt32(5).ToString(); 
            LblFidShowSublim.Text = fiddr.GetInt32(6).ToString(); 
            fiddr.Close(); 
           } 
           break; 
          case 5: 
           PanelNotShow.Visible = true; 
           using (SqlCommand notcmd = new SqlCommand(not, editConn)) 
           { 
            SqlDataReader notdr = notcmd.ExecuteReader(); 
            notdr.Read(); 
            LblNotShowPrimEx.Text = notdr.GetInt32(0).ToString(); 
            LblNotShowCov.Text = notdr.GetInt32(1).ToString(); 
            LblNotShowSharedLim.Text = notdr.GetInt32(2).ToString(); 
            LblNotShowTradLim.Text = notdr.GetInt32(3).ToString(); 
            LblNotShowTradSir.Text = notdr.GetInt32(4).ToString(); 
            LblNotShowEplLim.Text = notdr.GetInt32(5).ToString(); 
            LblNotShowEplSir.Text = notdr.GetInt32(6).ToString(); 
            LblNotShowEplPrem.Text = notdr.GetInt32(7).ToString(); 
            LblNotShowSublim.Text = notdr.GetInt32(8).ToString(); 
            notdr.Close(); 
           } 
           break; 
          case 6: 
           PanelPrivShow.Visible = true; 
           using (SqlCommand privcmd = new SqlCommand(priv, editConn)) 
           { 
            SqlDataReader privdr = privcmd.ExecuteReader(); 
            privdr.Read(); 
            LblPrivShowPrimEx.Text = privdr.GetInt32(0).ToString(); 
            LblPrivShowSharedLim.Text = privdr.GetInt32(1).ToString(); 
            LblPrivShowTradLim.Text = privdr.GetInt32(2).ToString(); 
            LblPrivShowTradAtt.Text = privdr.GetInt32(3).ToString(); 
            LblPrivShowTradSir.Text = privdr.GetInt32(4).ToString(); 
            LblPrivShowTradPrem.Text = privdr.GetInt32(5).ToString(); 
            LblPrivShowEplLim.Text = privdr.GetInt32(6).ToString(); 
            LblPrivShowEplSir.Text = privdr.GetInt32(7).ToString(); 
            LblPrivShowEplAtt.Text = privdr.GetInt32(8).ToString(); 
            LblPrivShowEplPrem.Text = privdr.GetInt32(9).ToString(); 
            LblPrivShowEplWage.Text = privdr.GetInt32(10).ToString(); 
            LblPrivShowEplSublim.Text = privdr.GetInt32(11).ToString(); 
            LblPrivShowFidLim.Text = privdr.GetInt32(12).ToString(); 
            LblPrivShowFidSir.Text = privdr.GetInt32(13).ToString(); 
            LblPrivShowFidAtt.Text = privdr.GetInt32(14).ToString(); 
            LblPrivShowFidPrem.Text = privdr.GetInt32(15).ToString(); 
            LblPrivShowFidSublim.Text = privdr.GetInt32(16).ToString(); 
            privdr.Close(); 
           } 
           break; 
          case 7: 
           PanelPubShow.Visible = true; 
           using (SqlCommand pubcmd = new SqlCommand(pub, editConn)) 
           { 
            SqlDataReader pubdr = pubcmd.ExecuteReader(); 
            pubdr.Read(); 
            LblPubShowMark.Text = pubdr.GetInt32(0).ToString(); 
            LblPubShowTick.Text = pubdr.GetInt32(1).ToString(); 
            LblPubShowTrad.Text = pubdr.GetInt32(2).ToString(); 
            LblPubShowDic.Text = pubdr.GetString(3); 
            LblPubShowLim.Text = pubdr.GetInt32(4).ToString(); 
            LblPubShowSecSir.Text = pubdr.GetInt32(5).ToString(); 
            LblPubShowAllSir.Text = pubdr.GetInt32(6).ToString(); 
            LblPubShowPrem.Text = pubdr.GetInt32(7).ToString(); 
            LblPubShowPrimEx.Text = pubdr.GetInt32(8).ToString(); 
            LblPubShowAtt.Text = pubdr.GetInt32(9).ToString(); 
            LblPubShowSublim.Text = pubdr.GetInt32(10).ToString(); 
            pubdr.Close(); 
           } 
           break; 
          default: 
           break; 
         } 
        } 
       drRows.Close(); 

     }   
    } 
} 
3

로드 대신 DataTable는, 사용, 폐기. 이것이 DataReaders의 특성입니다. 데이터가 돌아 다니도록하려면 DataTable을 사용합니다. 간단하지만 엄지 손가락의 좋은 규칙.

14

DataTable에로드하십시오.

SqlDataReader pubdr = pubcmd.ExecuteReader(); 
DataTable dt = new DataTable(); 
dt.Load(pubdr); 

는 의견을 확장하려면 :

SubmissionProducts 테이블의 고유 SubmissionId 가정
foreach (DataRow dr in dt.Rows) 
{ 
    LblEplShowEntity.Text = dr["FIELDNAME"].ToString(); 
    //... 
} 
+0

데이터 테이블에 저장된 데이터를 어떻게 읽습니까? –

+2

dt.Rows [rowindex] [columnName/columnIndex] – Jemes

+1

이렇게 : http://www.dotnetperls.com/datatable-foreach – 5arx

2

, 쿼리에 대한 데이터 판독기를 사용할 필요가 없습니다. 대신 명령 개체의 ExecuteScalar 메서드를 사용할 수 있습니다.

당신이 DataReader가에서 현재 행의 모든 ​​collumn 값의 배열을 얻고 싶은 경우에이 같은 GetValues 방법을 사용할 수 있습니다 : 나는 내 연결 문자열에 무언가를 조정했다 발견

SqlDataReader reader; // assumming the data reader is already opened 
    object[] columns = new object[reader.FieldCount]; 
    reader.GetValues(columns);// columns now contains all the values from the curent row 
+0

아쉽게도, 아니, SubmissionId 그것에 연결된 여러 인스턴스를 가질 수 있습니다. –

관련 문제