0

XmlWriterそのため、aと aを使用して XML を構築していますが、それぞれをDataSetループするときが来ると、ストアド プロシージャから返される "userid" などを参照する方法がわかりません。ページコードでは、同じストアドプロシージャを使用しているのと同じように、または何でも使用しているのがわかりますが、現在ASHXで使用しています...「ここに何が入るのですか??」を参照してください。以下のコードで...DataRowDataSetEval("userid")

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();
}
4

5 に答える 5

0

以下に示すようにDataRow.Itemプロパティを使用してみてください

dr["userid"]
于 2009-03-23T20:40:18.287 に答える
0

それはかなり簡単です。データ行 (dr) の整数列には、次のようにアクセスします。

int someVal = (int)dr["ColumnName"];
于 2009-03-23T20:40:31.483 に答える
0

まず、foreach が間違っています。ループする必要がありますgetData.Tables[0].Rows。複数のテーブルがある場合は、getData.Tables をループする必要があります。

しかし、答えはインデックス付きプロパティです。だから、dr["userId"]あなたに値を取得します。

foreach (DataRow dr in getData.Tables[0].Rows) {
   / * blah, blah */
   writer.WriteAttributeString("userId", dr["userId"]);
}
于 2009-03-23T20:41:47.613 に答える
0

あなたの内側のforeachが問題です。

する必要があります

if(getData.Tables.Count > 0){
   foreach(DataRow dr in getData.Tables[0].Rows){
      writer.WriteAttributeString("userid", dr["UserID"]);
   }
}
于 2009-03-23T20:43:17.717 に答える
0

反復レベルを追加する必要があります。現在、 でテーブルを反復処理しているforeach(DataRow dr in getData.Tables)ため、DataRow オブジェクトは 1 レベル下にあります。

于 2009-03-23T20:43:35.703 に答える