using System;

using System.Collections.Generic;

using System.Data;

using System.Text;

 

namespace ReadWrite_XML

{

    class Program

    {

 

        public static string[] SetUserInfo(int doType, object[][] data)

        {

            string[] result = new string[] { "success" };

            string file = "C:\\UserInfo.xml";

            DataSet ds = new DataSet();

            try

            {

                if (!System.IO.File.Exists(file))

                {

                    ds = CreateTableDS();

                    ds.WriteXml(file, XmlWriteMode.WriteSchema);

                }

                else

                {

                    ds.ReadXml(file);

                }

                DataRow[] drs;

                switch (doType)

                {

                    case 0: //insert

                        for (int i = 0; i < data.Length; i++)

                        {

                            DataRow row = ds.Tables[0].NewRow();

                            row.ItemArray = data[i];

                            ds.Tables[0].Rows.Add(row);

                        }

                        break;

                    case 1: //update

                        for (int i = 0; i < data.Length; i++)

                        {

                            drs = ds.Tables[0].Select("ID = '" + data[i][0].ToString() + "'");

                            drs[0]["UserName"] = data[i][1].ToString();

                            drs[0]["IsActive"] = data[i][2].ToString();

                            drs[0]["UpdateDate"] = data[i][3].ToString();

                        }

                        break;

                    case 2: //delete

                        for (int i = 0; i < data.Length; i++)

                        {

                            drs = ds.Tables[0].Select("ID = '" + data[i][0].ToString() + "'");

                            if (drs.Length > 0)

                                ds.Tables[0].Rows.Remove(drs[0]);

                            continue;

                        }

                        break;

                }

                ds.WriteXml(file, XmlWriteMode.WriteSchema);

            }

            catch (Exception ex)

            {

                result = new string[] { "error", ex.Message };

            }

            return result;

        }

 

        private static DataSet CreateTableDS()

        {

            DataSet ds = new DataSet();

            DataTable table = new DataTable("UserUnfo");

            DataColumn idColumn = new DataColumn();

            idColumn.DataType = System.Type.GetType("System.String");

            idColumn.ColumnName = "ID";

            table.Columns.Add(idColumn);

 

            DataColumn c0 = new DataColumn();

            c0.DataType = System.Type.GetType("System.String");

            c0.ColumnName = "UserName";

            table.Columns.Add(c0);

 

            DataColumn c1 = new DataColumn();

            c1.DataType = System.Type.GetType("System.Boolean");

            c1.ColumnName = "IsActive";

            table.Columns.Add(c1);

 

            DataColumn c2 = new DataColumn();

            c2.DataType = System.Type.GetType("System.DateTime");

            c2.ColumnName = "UpdateDate";

            table.Columns.Add(c2);

 

            DataColumn[] keys = new DataColumn[1];

            keys[0] = idColumn;

            table.PrimaryKey = keys;

            ds.Tables.Add(table);

            return ds;

        }

 

        static void Main(string[] args)

        {

            //insert

            SetUserInfo(0, new object[][]{

                new object[]{"a1", "nameA", true, DateTime.Now}});

            SetUserInfo(0, new object[][]{

                new object[]{"a2", "nameB", true, DateTime.Now}});

 

            //update

            //SetUserInfo(1, new object[][] {

            //    new object[] { "a1", "nameB", false, DateTime.Now } });

 

            //delete

            //SetUserInfo(2, new object[][] {

            //    new object[] { "a1" },

            //    new object[] { "a2" } });

        }

    }

}

 

arrow
arrow
    全站熱搜

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