用户名:   密码:    忘记密码  注册
我推信息网 > 学习园地 > 正文

DataTable,DataRow与DataView对象的增删改查

2011年5月17日
信息简介:将DataRowView对象添加进DataView对象中.修改现有的DataRowView对象DataView的FindRows()方法寻找并返回DataRowView对象数组,其中的主键是DataView中的主键

DataTable,DataRow与DataView对象的增删改查

//创建和声明DataTable对象
DataTable  total=new DataTable();

//给DataTable对象添加DataColumn对象
total.Columns.Add(new DataColumn("班组",typeof(string)));
total.Columns.Add(new DataColumn("姓名",typeof(string)));
total.Columns.Add(new DataColumn("学科",typeof(string)));
total.Columns.Add(new DataColumn("成绩",typeof(int)));
//声明DataRow对象
DataRow dr=total.NewRow();
//给DataRow对象中的各列赋值
dr["班组"]= "一班";
dr["姓名"]= " 李宏";
dr["学科"]= "语文 ";
dr["成绩"]=98;
//将DataRow对象添加到DataTable对象中
total.Rows.Add(dr);
dr=total.NewRow();
dr["班组"]= "一班";
dr["姓名"]= " 刘京生";
dr["学科"]= "语文 ";
dr["成绩"]=96;
total.Rows.Add(dr);
//创建DataView对象,DataView对象的数据从DataTable对象中获得
DataView dv=new DataView(total);
//循环取出DataView中的值在页面上输出
foreach(DataRowView drv in dv)
{
  for(int i=0;i<drv.Row.Table.Columns.Count;i++)
  {
    Response.Write(drv[i]+"<br>");
  }
}
 
==================================
 
 
//创建DataView对象,DataView对象的数据从DataTable对象中获得
DataView dv=new DataView(total);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
一、将DataRowView对象添加进DataView对象中
DataRowView drv=dv.AddNew();
drv["班组"]= "一班";
drv[“姓名”]= “ 赵刚";
drv["学科"]= "语文 ";
drv[“成绩”]=99;
//结束编辑可以调用DataRowView的CancelEdit()方法取消插入
Drv.EndEdit();
二、修改现有的DataRowView对象
//开始编辑
dv[2].BeginEdit();
//修改列值
dv[2][“成绩”]=98;
//对束编辑可以调用DataRowView的CancelEdit()方法取消修改
dv[2].EndEdit();
利用DataRowView的IsNew和IsEdit属性来检测DataRowView是否为新行或是否被编辑过。
三、删除现有的DataRowView对象
//调用DataView的Delete()方法,传入要删除的DataRowView的索引值
dv.Delete(1);
//调用DataRowView的Delete()方法删除
dv[1].Delete();
//调用DataTable的AcceptChanges()方法永久删除基础DataRow。
dt.AcceptChanges();
要取消删除,可以调用DataTable的RejectChanges()方法取消删除,从而取消未提交的增加与修改

==========================================
 
 
DataView的FindRows()方法寻找并返回DataRowView对象数组,其中的主键是DataView中的主键。如果找不到这样的行,则返回的数组为0个元素,数组的Length属性为0。要用FindRows()方法取得DataRowView对象,首先要将DataView的Sort属性设置为主键排序。
//打开数据库
con.Open();
//SQL语句
string oSql="select id,name,station,level,dept from verify";
//从数据库中提取数据
SqlDataAdapter da=new SqlDataAdapter(oSql,con);
//创建和声明记录集对象
DataSet ds=new DataSet();
//将数据库中提取出的数据加载到记录集
da.Fill(ds,"verify");
//关闭数据库
con.Close();
//从记录集中获取表对象
DataTable dt=ds.Tables["verify"];
//设置要排序的字段和排序方式字符串
string sortExpression="name DESC";
//创建DataView对象
DataView dv=new DataView();
//获取数据
dv.Table=dt;
//设置排序属性
dv.Sort=sortExpression;
//将查找到的行赋给行视图对象
DataRowView[] drv=dv.FindRows("李宏");
//循环取出行视图对象中的数据,在页面上输出
foreach(DataRowView l_drv in drv)
{
  for(int i=0;i<l_drv.Row.Table.Columns.Count;i++)
  {
    Response.Write(l_drv[i]+"<br>");
  }
}
 
 
dataview 更新 datatable
可以使用 DataView 在基础表中添加、删除或修改数据行。
通过设置 DataView 的三个布尔值属性之一,可以控制使用 DataView 修改基础表数据的能力。 这三个属性是 AllowNew、AllowEdit 和 AllowDelete。 默认情况下,它们设置为 true。

如果 AllowNew 为 true,则可以使用 DataView 的 AddNew 方法来创建新的 DataRowView。 
请注意,在调用 DataRowView 的 EndEdit 方法之前,新行实际上不会添加到基础 DataTable 中。 如果调用 DataRowView 的 CancelEdit 方法,则将丢弃新行。 
另请注意,一次只能编辑一个 DataRowView。 如果在存在挂起行时调用 DataRowView 的 AddNew 或 BeginEdit 方法,则会对该挂起行隐式调用 EndEdit。 
当调用 EndEdit 时,更改将应用于基础 DataTable,并且随后可以使用 DataTable、DataSet 或 DataRow 对象的 AcceptChanges 或 RejectChanges 方法来提交或拒绝更改。 
如果 AllowNew 为 false,则当调用 DataRowView 的 AddNew 方法时,将引发异常。

如果 AllowEdit 为 true,可以通过 DataRowView 来修改 DataRow 的内容。 可以使用 DataRowView.EndEdit 确认对基础行的更改,或使用 DataRowView.CancelEdit 拒绝更改。 注意,一次只能编辑一行。 如果在存在挂起行时调用 DataRowView 的 AddNew 或 BeginEdit 方法,则会对该挂起行隐式调用 EndEdit。 当调用 EndEdit 时,建议更改将放置在基础 DataRow 的 Current 行版本中,随后可以使用 DataTable、DataSet 或 DataRow 对象的 AcceptChanges 或 RejectChanges 方法来提交或拒绝这些更改。 如果 AllowEdit 为 false,则当试图修改 DataView 中的值时,将引发异常。

当编辑现有 DataRowView 时,仍将引发基础 DataTable 的事件,并提供建议更改。 请注意,如果对基础 DataRow 调用 EndEdit 或 CancelEdit,那么无论是否对 DataRowView 调用 EndEdit 或 CancelEdit,都将应用或取消挂起的更改。

如果 AllowDelete 为 true,则可以使用 DataView 或 DataRowView 对象的 Delete 方法删除 DataView 中的行,这些行也将从基础 DataTable 中删除。 随后可以分别使用 AcceptChanges 或 RejectChanges 来提交或拒绝删除。 如果 AllowDelete 为 false,当调用 DataView 或 DataRowView 的 Delete 方法时,将引发异常。

以下代码示例禁用通过 DataView 删除行的功能,并使用 DataView 向基础表中添加新行。

DataTable custTable = custDS.Tables["Customers"];
DataView custView = custTable.DefaultView;
custView.Sort = "CompanyName";

custView.AllowDelete = false;

DataRowView newDRV = custView.AddNew();
newDRV["CustomerID"] = "ABCDE";
newDRV["CompanyName"] = "ABC Products";
newDRV.EndEdit();

from:msdn.microsoft.com/zh-cn/library/70k6287b.aspx

(阅览次数:10102次)【关闭
上一条: C# winform DataGridView 的18种常见属性
下一条: 关于Debug和Release之本质区别
你认为此条信息得分为:
0% 100% 0% 0% 0%
很好 一般 不行
验证字符:
网友昵称: (Ctrl+Enter)
发表评论:
以下评论只代表网友个人观点,不代表我单位观点
暂时为空!
网站首页 -  政策法规 -  联系我们 -  免责申明 -  时尚一族 -  友情链接 -  关于我们 -  设为首页 -  加入收藏
版权所有:我推信息网 关键字:我推信息网 wotui 我推荐 我推
域 名:www.wotui.net 联系QQ (08:30-22:00在线): 邮 箱:yahali@sina.com
中华人民共和国电信与信息服务业务经营许可证

 

 

 

 

公共信息安全网络监察

经营性网站备案信息

不良信息举报中心 中国文明网络传播