C# 手动编写 DataSet,DataTable 及遍历DataSet中的数据

时间:2023-03-09 04:01:15
C# 手动编写 DataSet,DataTable 及遍历DataSet中的数据
一。手动编写DataSet:
   有时候不想从数据库导出 DataSet,或者有其他的需要,要将数据库里的DataSet包装成另一个样子,这个时候,了解DataSet的内部结构就非常必要。DataSet的构造也比较简单:
   一个DataSet里头有很多 DataTable
   一个DataTable里头有很多  DataColumn 和很多 DataRow
   从名字就能猜到它们大概是干什么的。。
   ok,举例说明吧~
 
   private DataSet CreatTable()
        {
            //创建一个Table 和 DataSet
            DataTable table = new DataTable();
            DataSet ds = new DataSet();
            //创建一个列
            DataColumn column1 = new DataColumn();
            column1.DataType = System.Type.GetType("System.String");
            column1.ColumnName = "Periord";
            //创建一个列
            DataColumn column2 = new DataColumn();
            column2.DataType = System.Type.GetType("System.Int32");
            column2.ColumnName = "Total";
            //
            //把列添加进去
            table.Columns.Add(column1);
            table.Columns.Add(column2);
            //创建一个行
            DataRow row1 = table.NewRow();
            row1["Periord"] = "Monday";
            row1["Total"] = 0;
            DataRow row2 = table.NewRow();
            row2["Periord"] = "Tuesday";
            row2["Total"] = 0;
            DataRow row3 = table.NewRow();
            row3["Periord"] = "Wednesday";
            row3["Total"] = 0;
            DataRow row4 = table.NewRow();
            row4["Periord"] = "Thursday";
            row4["Total"] = 0;
            DataRow row5 = table.NewRow();
            row5["Periord"] = "Friday";
            row5["Total"] = 0;
            DataRow row6 = table.NewRow();
            row6["Periord"] = "Saturday";
            row6["Total"] = 0;
            DataRow row7 = table.NewRow();
            row7["Periord"] = "Sunday";
            row7["Total"] = 0;
            //把行添加进去
            table.Rows.Add(row1);
            table.Rows.Add(row2);
            table.Rows.Add(row3);
            table.Rows.Add(row4);
            table.Rows.Add(row5);
            table.Rows.Add(row6);
            table.Rows.Add(row7);
            //把 Table添加到 DataSet 里面去
            ds.Tables.Add(table);
            return ds;
        }
二。遍历DataSet中的元素
   贴一个不错的网上的代码
   DataSet2 ds = new DataSet2();
   SqlDataAdapter da1 = new SqlDataAdapter(str, conn);
   da1.Fill(ds, "table");  
   //已经装载到DataSet数据集中了   
   for (int k = 0; k < ds.Tables["table"].Rows.Count; k++)
                {
                    for (int j = 0; j < ds.Tables["table"].Columns.Count; j++)
                    {
                        if (ds.Tables["table"].Rows[k]["emergency"].ToString().Trim() == "1")
                        {
                            ds.Tables["table"].Rows[k]["emergency"] = "合格";
                        }
                        else if (ds.Tables["table"].Rows[k]["emergency"].ToString().Trim() == "0")
                        {
                            //emergency = "处置";
                            ds.Tables["table"].Rows[k]["emergency"] = "处置";
                        }
                    }
                } 
   ds.AcceptChanges();