SQL에서 검색된 데이터 세트에서 이름별로 Datarow 요소를 참조하려면 어떻게합니까?

StackOverflow https://stackoverflow.com/questions/675133

  •  21-08-2019
  •  | 
  •  

문제

그래서 나는 a를 사용하여 XML을 만들고 있습니다 XmlWriter 그리고 a DataSet 그러나 각각을 통과 할 때가되면 DataRow 에서 DataSet 나는 "userID"와 같은 참조와 저장된 절차에서 돌아온 방법을 알 수 없습니다. 페이지 코드에서 나는 그들이 그렇게하는 것을 본다 Eval("userid") 또는 내가 동일한 저장된 절차를 사용하는 것이 무엇이든, 나는 지금 Ashx에서 그것을 사용하고 있습니다 ... '여기에있는 것은 무엇입니까 ??'를 참조하십시오. 아래 코드에서 ...

DataSet getData;
getData = SqlHelper.ExecuteDataset(ConfigurationManager.ConnectionStrings["connstr"].ConnectionString, CommandType.StoredProcedure, "Course_NewReportGet_Get_Sav", objPAra)

//COUNT NUMBER OF RESULTS FOR COUNT ATTRIBUTE (must add!)

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = ("    ");
using(XmlWriter writer = XmlWriter.Create("data.xml", settings))
{
    writer.WriteStartElement("changes");
    writer.WriteAttributeString("clientname", foundCompany.CompanyName);
    writer.WriteAttributeString("clientid", foundCompany.Abbreviation);
    //writer... INSERT COUNT ATTRIBUTE

    foreach(DataRow dr in getData.Tables)
    {
        writer.WriteStartElement("change");
        writer.WriteStartElement("user");
        writer.WriteAttributeString("userid", dr... WHAT GOES HERE??;                    
    }                
    writer.WriteEndElement();
}
도움이 되었습니까?

해결책

우선, 당신의 foreach가 잘못되었습니다. 반복해야합니다 getData.Tables[0].Rows. 테이블이 둘 이상인 경우 getData.tables를 반복해야합니다.

그러나 대답은 색인화 된 속성입니다. 그래서, dr["userId"] 당신에게 가치를 얻을 것입니다.

foreach (DataRow dr in getData.Tables[0].Rows) {
   / * blah, blah */
   writer.WriteAttributeString("userId", dr["userId"]);
}

다른 팁

매우 간단합니다. Datarow (DR)의 정수 열에 다음과 같이 액세스 할 수 있습니다.

int someVal = (int)dr["ColumnName"];

당신의 내면의 foreach가 문제입니다.

해야한다

if(getData.Tables.Count > 0){
   foreach(DataRow dr in getData.Tables[0].Rows){
      writer.WriteAttributeString("userid", dr["UserID"]);
   }
}

당신은 반복 레벨을 추가하고 싶을 것입니다 - 현재 당신은 당신의 테이블 위에 반복하고 있습니다. foreach(DataRow dr in getData.Tables), Datarow 객체는 아래의 한 레벨입니다.

사용해보십시오 datarow.item 아래와 같이 속성

dr["userid"]
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top