2013年3月8日 星期五

[C#]DataTable寫入/讀取XML

最近剛開始接觸到XML,雖然知道這個東西已經很久很久了,
但是一直都沒有試著去使用它,現在需要使用到卻遇到很多瓶頸,
因為我實在跟它不熟,後來Google之後發現DataTable可以直接存成XML檔,
這對我來說省去不少麻煩,特別把它給記下來,用法如下:

1. DataTable寫入為XML
DataTable dataTable = new DataTable("tableName"); //注意table一定需要有tablename
new SqlDataAdapter(selectCommand).Fill(dataTable);
dataTable.WriteXml("C:\\xmlName.xml");

假設產生出來的XML檔案如下:


 
 http://www.google.com.tw
 Google
 
 
 http://tw.yahoo.com
 Yahoo!
 



2. 讀取XML至DataTable
用以下方式讀取會出現「DataTable 不支援來自 Xml 的結構描述介面」的錯誤
DataTable dt = new DataTable();
dt.ReadXml("C:\\xmlName.xml");

以下方法則不會出現錯誤
DataTable dt = new DataTable("website");
//記得要給table名稱
dt.Columns.Add("url");
dt.Columns.Add("title");
dt.ReadXml("C:\\xmlName.xml");

1 則留言:

  1. public static string DatatableSerialize(System.Data.DataTable _dt)
    {
    string result = "";
    _dt.TableName = "Datatable";
    if (_dt != null)
    {
    StringWriter writer = new StringWriter();
    _dt.WriteXml(writer, XmlWriteMode.WriteSchema);
    result = writer.ToString();
    }
    return result;
    }
    public static DataTable DatatableDeserialize(string _strDATA)
    {
    DataTable tb = new DataTable();
    StringReader StringStream = new StringReader(_strDATA);
    tb.ReadXml(StringStream);
    return tb;
    }
    這樣就不會錯了.

    回覆刪除