我稍微看過官方MSDN有幾個連結比較有關的連結,和一些StackOverflow的文章

https://msdn.microsoft.com/zh-tw/library/583ek68e(v=vs.71).aspx

https://msdn.microsoft.com/zh-tw/library/t0twakas(v=vs.71).aspx

https://msdn.microsoft.com/zh-tw/library/aa983556(v=vs.71).aspx

https://msdn.microsoft.com/zh-tw/library/4ed2a9fk(v=vs.71).aspx

https://msdn.microsoft.com/zh-tw/library/ebf1436e(v=vs.71).aspx

 

https://msdn.microsoft.com/en-us/library/system.data.datatable.writexmlschema(v=vs.110).aspx

https://msdn.microsoft.com/zh-tw/library/system.data.datatable.writexml(v=vs.110).aspx

 

http://stackoverflow.com/questions/13975973/quickly-read-xml-files-and-save-to-tables-on-disk-with-auto-field-mapping

http://stackoverflow.com/questions/14059511/adding-data-to-typed-datasets-programatically

http://stackoverflow.com/questions/1842144/add-a-new-row-into-strongly-typed-dataset

 

接下來講一下我的作法,因為我是完全初次嘗試,所以可能不是很完整

 

1. 在Solution Explorer 你的專案上 按右鍵 >> Add >> New Item >>選DataSet

http://i.imgur.com/hg5JgVu.png

undefined

檔名改成你要的名稱,我這邊是用TransactData

加好後會出現

http://i.imgur.com/hcbIB3A.png

undefined

 

 

2.然後在.xsd上按兩下,接下來一般方式開啟ToolBox視窗,把DataTable拖進去畫面裡,

接下來會有個空DataTable,

可以編輯有哪些資料欄位,

新增可以在資料表UI上按右鍵>>Add>> Column (或是用快速鍵Ctrl+L)

右鍵也可以Add Key/Relation SetPrimaryKey等等

http://i.imgur.com/NV27npl.png

undefined

另外按下資料欄位後右鍵再開啟Properties的視窗可以設定資料的型態(DataType)、AllowNull等屬性

http://i.imgur.com/nk2bCgD.png

undefined

 

存檔後,

由designer.cs可以看出有個類似DataTable的屬性,

這個例子名稱是TransactDataTableDataTable,

我推測命名規則是"你定的名稱TableDataTable"

http://i.imgur.com/oYXIb07.png

undefined

 

接來看你要在哪邊產生這個類型的資料的地方,

和加入資料的動作,用下面的方式去做

 

例如我這邊是寫在主控台

 

//資料表名稱 點 DataTable名稱    然後new

TransactData.TransactDataTableDataTable dt = new TransactData.TransactDataTableDataTable();

//增加資料用這方法,這裡就是每筆資料的建構式,命名方式應該也是"Add你定的名稱TableRow"

//增加多筆就多Add幾次吧
dt.AddTransactDataTableRow(DateTime.Now, 1987, "uiop", "uiop", "uiop");

 

//將加好資料的Table輸出xsd檔,參數是要寫入覆蓋到哪個檔案

string f = @"C:\Users\admin\Desktop\Data.xsd";
dt.WriteXmlSchema(f);

//將加好資料的Table輸出xml檔,參數是要寫入覆蓋到哪個檔案

string f2 = @"C:\Users\admin\Desktop\Data.xml";
dt.WriteXml(f2);
 

 

先寫這樣子,

應該是有反讀取輸出檔案變資料表的方式例如下面

 internal static DataSet ReadDataSet()
        {            
            DataSet ds = new DataSet();
            ds.ReadXmlSchema("store.xsd");
            ds.ReadXml("store.xml");
            return ds;
        }
 

還有既然能讀取便資料表那一般資料表在使用的操作等等應該找一下也能找到方法

提幾個我目前找到的

 

 

//Create 就用New Table
            TransactData.TransactDataTableDataTable ds = new TransactData.TransactDataTableDataTable ();
 
//此為成功Add Row方法   INSERT
      TransactData.TransactDataTableDataTable ds = new TransactData.TransactDataTableDataTable ();
            ds.ReadXmlSchema(fxsd);
            ds.ReadXml(fxml);
 
            ds.AddTransactDataTableRow( DateTime.Now, 1999, "uiop", "uiop" , DateTime.Now.ToString("o" ));
            ds.AddTransactDataTableRow( DateTime.Now, 1999, "uiop", "uiop" , DateTime.Now.ToString("o" ));
       
 
            ds.WriteXmlSchema(fxsdN);
            ds.WriteXml(fxmlN);
 
//UpDate  直接透過屬性設定  public屬性同理
TransactData.TransactDataTableRow d = 
                ( TransactData.TransactDataTableRow )ds.Rows[2];
            d.Note = "KKKKKKKKKKKKKKKKKKKKK";
TransactData.TransactDataTableRow d = 
                ( TransactData.TransactDataTableRow )ds.FindById("IDKey");
            d.Note = "KKKKKKKKKKKKKKKKKKKKK";
//Delete
ds.RemoveTransactDataTableRow();
public void RemoveTransactDataTableRow(TransactDataTableRow row) {
                this.Rows.Remove(row);
            }

 

 

我就先寫到這了其他就請自行研究了!

 

 

 

arrow
arrow
    全站熱搜

    olivermode 發表在 痞客邦 留言(0) 人氣()