none
使用DataSet作為DataGridView的資料來源,如何在DataSet的Xml文件定義欄位名稱呢? RRS feed

  • 問題

  • Code:

     

                // The xml to bind to.
                string xml = @"<US><states><state><name /><capital /></state>"
                    + @"</states></US>";
                
                // Convert the xml string to bytes and load into a memory stream.
                byte[] xmlBytes = Encoding.UTF8.GetBytes(xml);
                MemoryStream stream = new MemoryStream(xmlBytes, false);
    
                // Create a DataSet and load the xml into it.
                dataSet1.ReadXml(stream);
    
                dataGridView1.DataSource = dataSet1;
                dataGridView1.DataMember = "state";
    

     


    執行畫面是:

     

    問題:

    我可以不要有那空白的第一行嗎?

    但是我希望欄位名稱(name, capital)依然留著,如下圖

    因為我繫結了DataSet作為資料來源,目的在於我想在DataGridView輸入完資料後,用DataSet輸出Xml資料的,

    請問我該怎麼做呢?

     

    2011年12月5日 下午 01:25

解答

  • 問題已解決,在DataSet物件中使用Tables屬性來增加DataTable,之後在增加上述所說的name、capital欄位。
    
    
                dataSet1.DataSetName = "Items";
    
                dataSet1.Tables.Add("state");
                dataSet1.Tables[0].Columns.Add("name", typeof(string));
                dataSet1.Tables[0].Columns.Add("capital", typeof(string));
    
                string s = dataSet1.GetXml();
                dataGridView1.DataSource = dataSet1;
                dataGridView1.DataMember = "state";
    

    這樣子使用DataSet的GetXml()會得到
    <Items />
    字串,
    而當入輸入資料後(如下圖):
    會得到
    <Items>
      <state>
        <name>sp4</name>
        <capital>abc</capital>
      </state>
    </Items>
    
    字串。

    • 已標示為解答 503 2011年12月5日 下午 02:08
    2011年12月5日 下午 02:07