2005-01-31 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mcs / class / System.XML / System.Xml.Serialization / standalone_tests / dataset.cs
1 using System;
2 using System.IO;
3 using System.Xml.Serialization;
4 using System.Data;
5
6 public class Test 
7 {
8         public static void Main()
9         {
10                 Test t=new Test();
11                 t.Create("dataset.xml");
12                 t.Read("dataset.xml");
13         }
14         
15         private void Create(string filename)
16         {
17                 XmlSerializer ser=new XmlSerializer(typeof(DataSet));
18
19                 /* Create a new DataSet; add a table, column and ten rows */
20                 DataSet ds=new DataSet("myDataSet");
21                 DataTable t=new DataTable("table1");
22                 DataColumn c=new DataColumn("thing");
23
24                 t.Columns.Add(c);
25                 ds.Tables.Add(t);
26
27                 DataRow r;
28                 for(int i=0; i<10; i++) {
29                         r=t.NewRow();
30                         r[0]="Thing "+i;
31                         t.Rows.Add(r);
32                 }
33
34                 TextWriter writer=new StreamWriter(filename);
35                 ser.Serialize(writer, ds);
36                 writer.Close();
37         }
38
39         private void Read(string filename)
40         {
41                 XmlSerializer ser=new XmlSerializer(typeof(DataSet));
42                 FileStream fs=new FileStream(filename, FileMode.Open);
43                 DataSet ds;
44
45                 ds=(DataSet)ser.Deserialize(fs);
46                 fs.Close();
47                 
48                 Console.WriteLine("DataSet name: "+ds.DataSetName);
49                 Console.WriteLine("DataSet locale: "+ds.Locale.Name);
50
51                 foreach(DataTable t in ds.Tables) 
52                 {
53                         Console.WriteLine("Table name: "+t.TableName);
54                         Console.WriteLine("Table locale: "+t.Locale.Name);
55
56                         foreach(DataColumn c in t.Columns) 
57                         {
58                                 Console.WriteLine("Column name: "+c.ColumnName);
59                                 Console.WriteLine("Null allowed? "+c.AllowDBNull);
60                                 
61                         }
62
63                         foreach(DataRow r in t.Rows)
64                         {
65                                 Console.WriteLine("Row: "+(string)r[0]);
66                         }
67                 }
68         }
69 }
70