- - PR -
バイナリデータを含むDataSet → Xml → 文字列取得
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-29 09:55
こんにちは
ASP.NET 言語[C#]、DB[SQLServer2000]で開発しています。 varbinary型のフィールドNAMEを持つT_名簿という テーブルがあり、「山田 太郎」というデータが入っています。 データを抽出してDataSetに格納して、まずXMLに変換し、 そのXMLから文字列「山田 太郎」を取得したいのですが、 思うようにいきません。 ソースを以下に記します。 よろしくお願いします。 //DataSet→Xml文字列化 SqlConnection con = new SqlConnection(DB接続文字列); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new SqlCommand("SELECT * FROM T_名簿", con); DataSet ds = new DataSet(); da.Fill(ds, "T_名簿"); string data = ds.GetXml(); //Xml→文字列取得 XmlDocument xml = new XmlDocument(); xml.LoadXml(data); XmlNodeList NodeList = xml.GetElementsByTagName("NAME"); XmlNode rec = xml.SelectSingleNode("/NewDataSet/T_名簿"); string NAME = rec.SelectSingleNode("NAME[1]").InnerText; //↑NAMEの値は「jlKTY4FAkb6YWQ・・・」になっています。 //文字列に変換する方法を教えて下さい。 |
|
投稿日時: 2004-09-29 10:50
XMLにした時点でバイナリデータは base 64 でエンコードされていると思います。
string NAME = rec.SelectSingleNode("NAME[1]").InnerText; byte[] binaryData = System.Convert.FromBase64String(NAME); ではどうでしょうか?(こちらでは試してませんが・・・) |
|
投稿日時: 2004-09-29 11:37
chack様
すばやい返答ありがとうございます。 投稿したソースの後に以下のコードを追加したところ、上手くいきました。 System.Text.Encoding uni = System.Text.Encoding.GetEncoding("unicode"); Byte[] b = System.Convert.FromBase64String(NAME); string NAME2 = uni.GetString(b); ありがとうございました。 今後ともよろしくお願いします。 |
1