关闭

RowStateDemo

326人阅读 评论(0) 收藏 举报

Code:

using System;
using System.Data;

namespace RowStateDemo
{
 /// <summary>
 /// RowStateDemo2 的摘要说明。
 /// 演示RowState的
 /// </summary>
 public class RowStateDemo2
 {
  public RowStateDemo2()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }  

  static void Main(string[] args)
  {
   DataTable dt=new DataTable();
   DataColumn dc=new DataColumn();
   dt.Columns.Add("stuNo",typeof(int));
   dc.AllowDBNull=false;   
   dc.DefaultValue=25;    
   dt.Columns.Add("stuName",typeof(string));
   dt.Columns.Add("stuMarks",typeof(double));

            Console.WriteLine("※※※※※以下是对stuNo=101行进行操作※※※※※"); 
   DataRow dr=dt.NewRow();
   Console.WriteLine("建立新行dr时,RowState:"+dr.RowState);
   dr["stuNo"]=101;
   dr["stuName"]="Peter";
   dr["stuMarks"]=55.5;
   Console.WriteLine("对新行dr赋值后,但执行Add(dr)前,RowState:"+dr.RowState);
   dt.Rows.Add(dr);  
   Console.WriteLine("执行Add(dr)后,但执行dr.AcceptChanges()前,RowState:"+dr.RowState);
   dr.AcceptChanges();
   Console.WriteLine("执行dr.AcceptChanges()后,RowState:"+dr.RowState);
   dt.Rows.Remove(dr);
   Console.WriteLine("执行Remove(dr)后,RowState:"+dr.RowState);  
   
   Console.WriteLine("※※※※※以下是对stuNo=102行进行操作※※※※※");
   dr=dt.NewRow();
   dr["stuNo"]=102;
   dr["stuName"]="Jack";
   dr["stuMarks"]=75.5;
   dt.Rows.Add(dr);  
   dr.RejectChanges();
   Console.WriteLine("执行Add(dr)后,同时执行dr.RejectChanges();后,RowState:"+dr.RowState);
   
   Console.WriteLine("※※※※※以下是对stuNo=103行进行操作※※※※※"); 
   dr=dt.NewRow();
   dr["stuNo"]=103;
   dr["stuName"]="Tom";
   dr["stuMarks"]=85.5;
   dt.Rows.Add(dr); 
   dr.AcceptChanges();  
   Console.WriteLine("执行Add(dr)、dr.AcceptChanges()后,RowState:"+dr.RowState);
   dr.BeginEdit();  
   Console.WriteLine("执行Add(dr)、dr.AcceptChanges()、dr.BeginEdit()后,RowState:"+dr.RowState);
   dr["stuName"]="Rose";
   Console.WriteLine("执行dr.BeginEdit()后,同时修改了值,但在dr.EndEdit()前,RowState:"+dr.RowState);
   dr.EndEdit();
   Console.WriteLine("执行dr.BeginEdit()后,同时修改了值,但在dr.EndEdit()后,RowState:"+dr.RowState);
   dr.RejectChanges();
   Console.WriteLine("dr.RejectChanges()后,RowState:"+dr.RowState); 

   Console.WriteLine("※※※※※以下是对stuNo=104行进行操作※※※※※"); 
   dr=dt.NewRow();
   dr["stuNo"]=104;
   dr["stuName"]="Bill";
   dr["stuMarks"]=75.5;
   dt.Rows.Add(dr);  
   dr.AcceptChanges();
   dr.Delete();
   Console.WriteLine("执行Add(dr)、dr.AcceptChanges()、dr.Delete()后,RowState:"+dr.RowState);
   dr.RejectChanges();
   Console.WriteLine("执行Add(dr)、dr.AcceptChanges()、dr.Delete()后,RowState:"+dr.RowState);
 
   Console.WriteLine("※※※※※以下是对stuNo=105行进行操作※※※※※");
   dr=dt.NewRow();
   dr["stuNo"]=105;
   dr["stuName"]="Mary";
   dr["stuMarks"]=78.5;
   dt.Rows.Add(dr);  
   dr.AcceptChanges();

   Console.WriteLine("※※※※※显示DataTable中的数据※※※※※");   
   for(int i=0;i<dt.Rows.Count;i++)
   {
    Console.WriteLine("{0}/t{1}/t{2}",dt.Rows[i]["stuNo"],dt.Rows[i]["stuName"],dt.Rows[i]["stuMarks"]);
   }
  }
 }
}

result:

※※※※※以下是对stuNo=101行进行操作※※※※※
建立新行dr时,RowState:Detached
对新行dr赋值后,但执行Add(dr)前,RowState:Detached
执行Add(dr)后,但执行dr.AcceptChanges()前,RowState:Added
执行dr.AcceptChanges()后,RowState:Unchanged
执行Remove(dr)后,RowState:Detached
※※※※※以下是对stuNo=102行进行操作※※※※※
执行Add(dr)后,同时执行dr.RejectChanges();后,RowState:Detached
※※※※※以下是对stuNo=103行进行操作※※※※※
执行Add(dr)、dr.AcceptChanges()后,RowState:Unchanged
执行Add(dr)、dr.AcceptChanges()、dr.BeginEdit()后,RowState:Unchanged
执行dr.BeginEdit()后,同时修改了值,但在dr.EndEdit()前,RowState:Unchanged
执行dr.BeginEdit()后,同时修改了值,但在dr.EndEdit()后,RowState:Modified
dr.RejectChanges()后,RowState:Unchanged
※※※※※以下是对stuNo=104行进行操作※※※※※
执行Add(dr)、dr.AcceptChanges()、dr.Delete()后,RowState:Deleted
执行Add(dr)、dr.AcceptChanges()、dr.Delete()后,RowState:Unchanged
※※※※※以下是对stuNo=105行进行操作※※※※※
※※※※※显示DataTable中的数据※※※※※
103     Tom     85.5
104     Bill    75.5
105     Mary    78.5
Press any key to continue

0
0

  相关文章推荐
猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2729次
    • 积分:57
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    文章存档
    最新评论