1

プロシージャを実行し、値を a に入力しDataSetます。プロシージャは XML データ型の値を返します。を XMLに変換するDataSetと、XML データ型の値が文字列として取得されますが、子ノードとして使用する必要があります。どうすればいいですか?

手順の出力:

ここに画像の説明を入力

DataSet以下のようにXMLに変換します

DataSet ds = null;
using (SqlConnection connection = new SqlConnection(sConnectionString))
{
    connection.Open();
    SqlCommand Sqlcommand = new SqlCommand();
    Sqlcommand.CommandType = CommandType.StoredProcedure;
    if (SqlParamlist != null)
    {
        foreach (SqlParameter Sqlparameter in SqlParamlist)
        {
            Sqlcommand.Parameters.AddWithValue(Sqlparameter.ParameterName, Sqlparameter.Value);                                
        }
    }
    Sqlcommand.CommandText = sProc;
    Sqlcommand.Connection = connection;
    sProcParams = sProc + " " + sProcParams;
    using (SqlDataAdapter da = new SqlDataAdapter(Sqlcommand))
    {
        ds = new DataSet("DATATABLE");
        da.Fill(ds, "DATAROW");
        Sqlcommand.Parameters.Clear();
        da.Dispose();
    }
    connection.Close();
}
XmlDataDocument xDoc = new XmlDataDocument();
xDoc.LoadXml(ds.GetXml());

これが私のxDoc.OuterXml持っているものです

<DATATABLE>
    <DATAROW>
        <xmllimes>&lt;row&gt;&lt;time&gt;16:00:00&lt;/time&gt;&lt;/row&gt;</xmllimes>
    </DATAROW>
    <DATAROW>
        <xmllimes>&lt;row&gt;&lt;time&gt;14:20:00&lt;/time&gt;&lt;/row&gt;</xmllimes>
    </DATAROW>
    <DATAROW>
        <xmllimes>&lt;row&gt;&lt;time&gt;12:30:00&lt;/time&gt;&lt;/row&gt;</xmllimes>
    </DATAROW>
</DATATABLE>

ds.GetXML()しかし、私は以下を返したい

<DATATABLE>
    <DATAROW>
        <xmllimes>
            <row>
                <time>16:00:00</time>
            </row>
        </xmllimes>
    </DATAROW>
    <DATAROW>
        <xmllimes>
            <row>
                <time>14:20:00</time>
            </row>
        </xmllimes>
    </DATAROW>
    <DATAROW>
        <xmllimes>
            <row>
                <time>12:30:00</time>
            </row>
        </xmllimes>
    </DATAROW>
</DATATABLE>
4

0 に答える 0