DataSet简单演示

Code:
  1. using System;   
  2. using System.IO;   
  3. using System.Collections.Generic;   
  4. using System.Linq;   
  5. using System.Data;   
  6. using System.Text;   
  7. using System.Runtime.Serialization.Formatters.Binary;   
  8.   
  9. namespace SimpleDataSet   
  10. {   
  11.     class Program   
  12.     {   
  13.         static void Main(string[] args)   
  14.         {   
  15.             Console.Write("***** Fun with DataSets *****/n");   
  16.             DataSet carsInventoryDS = new DataSet("Car Inventory");   
  17.             carsInventoryDS.ExtendedProperties["TimeStamp"] = DateTime.Now;   
  18.             carsInventoryDS.ExtendedProperties["DataSetID"] = Guid.NewGuid();   
  19.             carsInventoryDS.ExtendedProperties["Company"] = "Intertech Training";   
  20.   
  21.             DataColumn carIDColumn = new DataColumn("CarID"typeof(int));   
  22.             carIDColumn.Caption = "Car ID";   
  23.             carIDColumn.ReadOnly = true;   
  24.             carIDColumn.AllowDBNull = false;   
  25.             carIDColumn.Unique = true;   
  26.             carIDColumn.AutoIncrement = true;   
  27.             carIDColumn.AutoIncrementSeed = 0;   
  28.             carIDColumn.AutoIncrementStep = 1;   
  29.             DataColumn carMakeColumn = new DataColumn("Make"typeof(string));   
  30.             DataColumn carColorColumn = new DataColumn("Color"typeof(string));   
  31.             DataColumn carPetNameColumn = new DataColumn("PetName"typeof(string));   
  32.             carPetNameColumn.Caption = "Pet Name";   
  33.   
  34.             DataTable inventroyTable = new DataTable("Inventroy");   
  35.             inventroyTable.Columns.AddRange(new DataColumn[]   
  36.             {carIDColumn,carMakeColumn,carColorColumn,carPetNameColumn});   
  37.             DataRow carRow = inventroyTable.NewRow();   
  38.             inventroyTable.PrimaryKey =new DataColumn[] {inventroyTable.Columns[0]};   
  39.             carRow["Make"] = "BMW";   
  40.             carRow["Color"] = "Black";   
  41.             carRow["PetName"] = "Hamlet";   
  42.             inventroyTable.Rows.Add(carRow);   
  43.             carRow = inventroyTable.NewRow();   
  44.             carRow[1] = "Saab";   
  45.             carRow[2] = "Red";   
  46.             carRow[3] = "Sea Breeze";   
  47.             inventroyTable.Rows.Add(carRow);   
  48.             ManipulateDataRowState();   
  49.             carsInventoryDS.Tables.Add(inventroyTable);   
  50.   
  51.             DataColumn CustomIdColumn = new DataColumn("CustomId"typeof(int));   
  52.             CustomIdColumn.Caption = "CustomId ID";   
  53.             CustomIdColumn.ReadOnly = true;   
  54.             CustomIdColumn.AllowDBNull = false;   
  55.             CustomIdColumn.Unique = true;   
  56.             CustomIdColumn.AutoIncrement = true;   
  57.             CustomIdColumn.AutoIncrementSeed = 1987;   
  58.             CustomIdColumn.AutoIncrementStep = 1;   
  59.             DataColumn firstColumn = new DataColumn("FirstName"typeof(string));   
  60.             DataColumn lastColumn = new DataColumn("LastName"typeof(string));   
  61.             firstColumn.Caption = "First   Name";   
  62.             DataTable CustomTable = new DataTable("Custom");   
  63.             CustomTable.Columns.AddRange(new DataColumn[]     {CustomIdColumn,    firstColumn, lastColumn });   
  64.             DataRow customRow = CustomTable.NewRow();   
  65.             CustomTable.PrimaryKey = new DataColumn[] { CustomTable.Columns[0] };   
  66.             customRow["FirstName"] = "xue";   
  67.             customRow["LastName"] = "yong";   
  68.             CustomTable.Rows.Add(customRow);   
  69.             customRow = CustomTable.NewRow();   
  70.             customRow[1] = "zhang";   
  71.             customRow[2] = "chuang";   
  72.             CustomTable.Rows.Add(customRow);   
  73.             ManipulateDataRowState();   
  74.             carsInventoryDS.Tables.Add(CustomTable);   
  75.             PrintDataset(carsInventoryDS);   
  76.             foreach (DataTable dt in carsInventoryDS.Tables)   
  77.             PrintTable(dt);   
  78.             DataSetAsXml(carsInventoryDS);   
  79.             DataSetAsBinary(carsInventoryDS);   
  80.   
  81.         }   
  82.         static void DataSetAsBinary(DataSet carsInventoryDS)   
  83.         {   
  84.             carsInventoryDS.RemotingFormat = SerializationFormat.Binary;   
  85.             FileStream fs = new FileStream("BinaryCars.bin", FileMode.Create);   
  86.             BinaryFormatter bFormat = new BinaryFormatter();   
  87.             bFormat.Serialize(fs, carsInventoryDS);   
  88.             fs.Close();   
  89.             carsInventoryDS.Clear();   
  90.             fs = new FileStream("BinaryCars.bin", FileMode.Open);   
  91.             DataSet data = (DataSet)bFormat.Deserialize(fs);   
  92.         }   
  93.         static void DataSetAsXml(DataSet carsInventoryDS)   
  94.         {   
  95.             carsInventoryDS.WriteXml("carsDataSet.xml");   
  96.             carsInventoryDS.WriteXmlSchema("carsDataSet.xsd");   
  97.             carsInventoryDS.Clear();   
  98.             carsInventoryDS.ReadXml("carsDataSet.xml");   
  99.         }   
  100.         static void PrintDataset(DataSet ds)   
  101.         {   
  102.             Console.WriteLine("DatasSet is named :{0}", ds.DataSetName);   
  103.             foreach (System.Collections.DictionaryEntry de in ds.ExtendedProperties)   
  104.             {   
  105.                 Console.WriteLine("Key ={0},Value ={1}", de.Key, de.Value);   
  106.             }   
  107.             foreach (DataTable dt in ds.Tables)   
  108.             {   
  109.                 Console.WriteLine("->{0}Table:", dt.TableName);   
  110.                 for (int curCol = 0; curCol < dt.Columns.Count; curCol++)   
  111.                 {   
  112.                     Console.Write(dt.Columns[curCol].ColumnName + "/t/t");   
  113.                 }   
  114.                 Console.WriteLine("/n-------------------------------");   
  115.   
  116.                 for (int curRow = 0; curRow < dt.Rows.Count; curRow++)   
  117.                 {   
  118.                     for (int curCol = 0; curCol < dt.Columns.Count; curCol++)   
  119.                     {   
  120.                         Console.Write(dt.Rows[curRow][curCol].ToString() + "/t/t");   
  121.                     }   
  122.                     Console.WriteLine();   
  123.                 }   
  124.             }   
  125.         }   
  126.         static void PrintTable(DataTable dt)   
  127.         {   
  128.             DataTableReader dtReader = dt.CreateDataReader ();   
  129.             while (dtReader.Read())   
  130.             {   
  131.                 for(int i=0;i<dtReader.FieldCount;i++)   
  132.                 {   
  133.                     Console.WriteLine("{0}/t",dtReader.GetValue(i).ToString().Trim());   
  134.                 }   
  135.                 Console.WriteLine();   
  136.             }   
  137.             dtReader.Close();   
  138.         }   
  139.         private static void ManipulateDataRowState()   
  140.         {   
  141.             DataTable temp = new DataTable("Temp");   
  142.             temp.Columns.Add(new DataColumn("TempColumn",typeof(int)));   
  143.             DataRow row =temp.NewRow();   
  144.             Console.WriteLine("After Calling NewRow(): {0}",row.RowState);   
  145.             temp.Rows.Add(row);   
  146.             Console.WriteLine("After Calling Rows.add():{0}",row.RowState);   
  147.             row["TempColumn"]=10;   
  148.             Console.WriteLine("After first assignment: {0}",row.RowState);   
  149.             temp.AcceptChanges();   
  150.             Console.WriteLine("After Calling AcceptChanges: {0}",row.RowState);   
  151.             row["TempColumn"] =11;   
  152.             Console.WriteLine("After first modify:{0}",row.RowState);   
  153.             temp.Rows[0].Delete();   
  154.             Console.WriteLine("After Calling Delete:{0}",row.RowState);   
  155.               
  156.         }   
  157.     }   
  158. }   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值