我的.NET学习日记(13)
来源:互联网 发布:现代网络通信概论 编辑:程序博客网 时间:2024/05/05 16:24
2012年12月19日 星期三 天气小雨
前面学习了数据的选择和查询,并初步了解了DataSet。现在将要更深入的学习DataSet,通过DataSet来构建应用程序并将数据读入DataSet方法。
今天,学习DataSet类的层次结构。
DataSet是将数据驻存在内存中,可以完整的、一致的提供数据的关系模型。也就是说将数据库中的表读取到DataSet中后,在DataSet中的数据与数据库表中的数据是一致的。
DataSet类中,.NET类库提供了许多有用的属性和方法。
下面是一个运用DataSet的实例代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;namespace 构造DataSet{ class Program { static void Main(string[] args) { DataSet ds = new DataSet(); DataTable dt = new DataTable("Product"); DataColumn dcProductID = new DataColumn("ProductID", typeof(int)); DataColumn dcProductName = new DataColumn("ProductName", typeof(string)); dcProductName.MaxLength = 100; DataColumn dcReleaseDate = new DataColumn("ReleaseDate", typeof(DateTime)); dt.Columns.Add(dcProductID); dt.Columns.Add(dcProductName); dt.Columns.Add(dcReleaseDate); dt.PrimaryKey = new DataColumn[] { dcProductID }; dt.Constraints.Add(new UniqueConstraint(dcProductName)); dt.Rows.Add(new object[] { 1, "4×4 EVO 2", DateTime.Now }); dt.Rows.Add(new object[] { 2, "Halo 3", DateTime.Now }); dt.Rows.Add(new object[] { 3, "Paperboy", DateTime.Now }); ds.Tables.Add(dt); PrintToConsole(ds); PrintToConsole(dt); } public static void PrintToConsole(DataSet ds) { ConsoleColor old = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("DataSetName:{0}", ds.DataSetName); Console.WriteLine("Has Changes:{0}", ds.HasChanges()); Console.ForegroundColor = old; Console.WriteLine("-".PadRight(79, '-')); } public static void PrintToConsole(DataTable dt) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("DataTable:{0}", dt.TableName); Console.WriteLine("Has Changes:{0}", (dt.GetChanges().Rows.Count > 0)); Console.WriteLine("-".PadRight(79, '-')); Console.ForegroundColor = ConsoleColor.Cyan; string colHeader = string.Empty; foreach (DataColumn dc in dt.Columns) { colHeader = colHeader + dc.ColumnName.PadRight(FiveOrLength(dc)); } colHeader = colHeader + "\tRowState"; Console.WriteLine(colHeader); Console.WriteLine("-".PadRight(79, '-')); foreach (DataRow dr in dt.Rows) { PrintToConsole(dr); } Console.WriteLine(); } public static void PrintToConsole(DataRow dr) { Console.ForegroundColor = ConsoleColor.White; string row = string.Empty; foreach (DataColumn dc in dr.Table.Columns) { row = row + dr[dc].ToString().PadRight(FiveOrLength(dc)); } row = row + "\t\t" + dr.RowState.ToString(); Console.WriteLine(row); } public static int FiveOrLength(DataColumn dc) { if (dc.DataType == typeof(DateTime)) { return 20; } else if (dc.MaxLength < 5) { return 5; } else { return 20; } } }}
运行结果:
- 我的.NET学习日记(13)
- 我的.NET学习日记(1)
- 我的.NET学习日记(2)
- 我的.NET学习日记(3)
- 我的.NET学习日记(4)
- 我的.NET学习日记(5)
- 我的.NET学习日记(6)
- 我的.NET学习日记(7)
- 我的.NET学习日记(8)
- 我的.NET学习日记(9)
- 我的.NET学习日记(10)
- 我的.NET学习日记(11)
- 我的.NET学习日记(12)
- 我的java学习日记(13)
- 我的学习日记!
- 我的学习日记
- 我的java学习日记(1)
- 我的java学习日记(2)
- PB中用DataWindow.Update更新数据。
- Eclipse快捷键大全(转载)
- 我今年二十五六岁
- OAuth2的流程梳理
- 线程同步之事件
- 我的.NET学习日记(13)
- MyMessageBox
- onWindowFocus--onAttachedToWindow--onWindowVisibilityChanged--onWindowFocusChanged
- 编程之美——买书问题
- gsoap入门--用goap写一个加法的WebService
- SimpleAdapter 和 ListView
- Css3学习笔记(七):布局
- linux简介
- OK6410上构建自己的根文件系统