ADO.NET非连接类,关于DataTable、DataColumn和DataRow对象的创建(转)
Posted on 2011-03-22 13:16 beeone 阅读(1141) 评论(0) 编辑 收藏 举报非连接数据访问类是在客户应用程序中进行实例化的。在使用非连接类时必须使用DataTable对象。
DataTable对象
DataTable对象将表格化数据表示为内存中的一个包含行、列和约束条件的表。
创建一个DataTable对象:
DataTable 对象 = new DataTable(对象名);
例:DataTable Student = new DataTable(“student”);
上例就创建了一个对象名为Student的DataTable对象。
注意:在vs2005中有时会出现这样的错误:““DataTable”是“命名空间”,但此处被当做“类型”来使用”。那是因为DataTable是命名空间System里的一个命名空间,,所以,为了解决这个问题可以这样来调用:
System.Data.DataTable Student = new DataTable("student");
这样就不会出现上面的错误了!
添加DataColumn对象以创建一个模式
一个表中必须有至少一个以上的Column对象,也就是二维表中的列!创建语法如下:
DataColumn 对象 = new DataColumn(对象名);
//设置对象属性
……
DataTable对象.Columns.Add(DataColum对象);
例如在上面的Student中加入studentnumber、studentname和studentsex这3个属性列:
DataColumn studentnumber = new DataColumn("ID");
studentnumber.AllowDBNull = false;//该列是否允许有空值
studentnumber.DataType = typeof(string);//该列的数据类型的设置
studentnumber.MaxLength = 10;//该列的属性的最大长度
studentnumber.Unique = true;//该列里的值是否取唯一值
//创建studentname列:
DataColumn studentname = new DataColumn("name", typeof(string));
studentname.AllowDBNull = false;
studentname.MaxLength = 10;
studentname.Unique = false;
//创建studentsex列:
DataColumn studentsex = new DataColumn("sex", typeof(string));
studentsex.Unique = false;
studentsex.AllowDBNull = true;
studentsex.MaxLength = 1;
//将刚刚创建好的列加入Student表中:
Student.Columns.Add(studentnumber);
Student.Columns.Add(studentname);
Student.Columns.Add(studentsex);
创建主键列
一个DataTable对象的主键由一个或者多个列构成,以唯一表示每个数据行。创建方法如下:
DataTable对象.PrimaryKey = new DataColumn[]{DataColumn对象集合};
例:我们把刚刚创建好的Student中的studentnumber设置为主键列:
//把studentnumber列设置为主键列:
Student.PrimaryKey = new DataColumn[] { studentnumber };
可以看到,其实主键列就是一个DataColumn对象的数组!
创建用于存储数据的DataRow对象
介绍三种常用的创建方法:
1. DataRow 对象 = DataTable对象.NewRow( );
//设置每个属性列的值:
DataRow对象[索引] = 要设置的值;
……
//设置完毕
DataTable对象.Rows.Add(DataRow对象);
2. DataTable对象.Rows.Add(第一列属性值,第二列属性值……第n列属性值);
3.
4. 使用 DataTable对象.LoadDataRow()函数;
下面分别使用这3中方法将小红、小明和小张这三个人加入Student中:
DataRow row_xiaohong = Student.NewRow();
row_xiaohong[studentnumber] = "00001";
row_xiaohong[studentname] = "小红";
row_xiaohong[studentsex] = "女";
Student.Rows.Add(row_xiaohong);
//把小明加入Student中:
Student.Rows.Add("00002", "小明", "男");
//把小张加入Student中:
Student.LoadDataRow(new object[]{"00003","小张","男"},LoadOption.OverwriteChanges);
非连接数据访问类是在客户应用程序中进行实例化的。在使用非连接类时必须使用DataTable对象。
DataTable对象
DataTable对象将表格化数据表示为内存中的一个包含行、列和约束条件的表。
创建一个DataTable对象:
DataTable 对象 = new DataTable(对象名);
例:DataTable Student = new DataTable(“student”);
上例就创建了一个对象名为Student的DataTable对象。
注意:在vs2005中有时会出现这样的错误:““DataTable”是“命名空间”,但此处被当做“类型”来使用”。那是因为DataTable是命名空间System里的一个命名空间,,所以,为了解决这个问题可以这样来调用:
System.Data.DataTable Student = new DataTable("student");
这样就不会出现上面的错误了!
添加DataColumn对象以创建一个模式
一个表中必须有至少一个以上的Column对象,也就是二维表中的列!创建语法如下:
DataColumn 对象 = new DataColumn(对象名);
//设置对象属性
……
DataTable对象.Columns.Add(DataColum对象);
例如在上面的Student中加入studentnumber、studentname和studentsex这3个属性列:
DataColumn studentnumber = new DataColumn("ID");
studentnumber.AllowDBNull = false;//该列是否允许有空值
studentnumber.DataType = typeof(string);//该列的数据类型的设置
studentnumber.MaxLength = 10;//该列的属性的最大长度
studentnumber.Unique = true;//该列里的值是否取唯一值
//创建studentname列:
DataColumn studentname = new DataColumn("name", typeof(string));
studentname.AllowDBNull = false;
studentname.MaxLength = 10;
studentname.Unique = false;
//创建studentsex列:
DataColumn studentsex = new DataColumn("sex", typeof(string));
studentsex.Unique = false;
studentsex.AllowDBNull = true;
studentsex.MaxLength = 1;
//将刚刚创建好的列加入Student表中:
Student.Columns.Add(studentnumber);
Student.Columns.Add(studentname);
Student.Columns.Add(studentsex);
创建主键列
一个DataTable对象的主键由一个或者多个列构成,以唯一表示每个数据行。创建方法如下:
DataTable对象.PrimaryKey = new DataColumn[]{DataColumn对象集合};
例:我们把刚刚创建好的Student中的studentnumber设置为主键列:
//把studentnumber列设置为主键列:
Student.PrimaryKey = new DataColumn[] { studentnumber };
可以看到,其实主键列就是一个DataColumn对象的数组!
创建用于存储数据的DataRow对象
介绍三种常用的创建方法:
1. DataRow 对象 = DataTable对象.NewRow( );
//设置每个属性列的值:
DataRow对象[索引] = 要设置的值;
……
//设置完毕
DataTable对象.Rows.Add(DataRow对象);
2. DataTable对象.Rows.Add(第一列属性值,第二列属性值……第n列属性值);
3.
4. 使用 DataTable对象.LoadDataRow()函数;
下面分别使用这3中方法将小红、小明和小张这三个人加入Student中:
DataRow row_xiaohong = Student.NewRow();
row_xiaohong[studentnumber] = "00001";
row_xiaohong[studentname] = "小红";
row_xiaohong[studentsex] = "女";
Student.Rows.Add(row_xiaohong);
//把小明加入Student中:
Student.Rows.Add("00002", "小明", "男");
//把小张加入Student中:
Student.LoadDataRow(new object[]{"00003","小张","男"},LoadOption.OverwriteChanges);