2010年12月1日 星期三

DB to XML, then XML to DB

1. 第一段 Script 的重點在於寫資料到XML 告知 .NET 需要寫入資料外也一併將 Schema 寫進到 XML 中
2. 第二段 Script 的重點在於利用 XSD 功能將對應的 INSERT 敘述產生出來
3. 第二段 Script 的另一個重點是利用 Merge 將 Memory 中的 DataSet 資料灌進到 XSD 的 DataTable
3. 第二段 Script 的最後一個重點是利用 Adapter.Update 將 XSD 的 DataTable 資料呼叫對應的 InsertCommand (利用 XSD產生)
寫入資料庫

        protected void ReadDataBaseAndWriteToXML()
        {           
            using (SqlConnection conn = form.DataBaseManager.getConnection())
            {
           
                SqlCommand command = conn.CreateCommand();
                command.CommandText = "select * from ow_param";
                SqlDataAdapter adapter = new SqlDataAdapter("select * from ow_param", conn);
                DataSet dataset = new DataSet();

                adapter.Fill(dataset);
                // dataset.WriteXml(@"c:\ow_param.xml"), only output the string format data
                dataset.WriteXml(@"c:\ow_param_w_schema.xml", XmlWriteMode.WriteSchema);
               
            }
           
           
        }

        protected void LoadXMLSchemaAndSaveToDB()
        {

            DataSet dataset = new DataSet();           
            dataset.ReadXml(@"c:\ow_param_w_schema.xml");
            string tableName = dataset.Tables[0].TableName;           

            using (basic.xsd.oym_ow_paramTableAdapters.OW_PARAMTableAdapter ow_paramAdapter = new ICE.basic.xsd.oym_ow_paramTableAdapters.OW_PARAMTableAdapter())
            {

                DataTable xmlTable = dataset.Tables[tableName];
                basic.xsd.oym_ow_param.OW_PARAMDataTable dbTable =  ow_paramAdapter.GetData();
                dbTable.Merge(xmlTable);
                if (dbTable != null)
                {
                    ow_paramAdapter.Update(dbTable);
                }
            }

        }

沒有留言:

張貼留言