数据的软删除-管理员的CRUD

数据的“软删除”---把数据真正删除在某些时候会有问题。IsDeleted字段,false表示不删除,而是让用户可以看到,true表示是软删除,用户看不到。

一个表引用另外一张表的时候一定要引用主键。

用户的初始密码和密码重置,解锁。

第一步,再次设置数据库,为表T_Operator添加一个字段“IsDeleted”,bit类型(就是C#中的bool),不允许为空,此时保存时候会提示如下:

解决方法:第一步:在“工具”--->"选项"然后如图

第二步:是因为数据库中已经存有数据,新添加的字段“IsDeleted”不可为空,但是已存在的数据他的IsDeleted是空的,所以会报错。处理办法是,先允许此字段为空,然后再编辑之前的数据,为其添加该字段的值。然后保存即可。

第二步,在Operator.cs中为Operator类添加IsDeleted字段,代码如下:

public bool IsDeleted { get; set; }

第三步:在OperatorDAL.cs中的Inser(Operator op)方法添加IsDeleted字段,如下:

 SqlHelper.ExecuteNonQuery(@"insert into T_Operator (Id,UserName,Password,isDeleted) values(newid(),
                            @UserName,@Password,0)",

(注意:在SQL语句中bit用0,1表示,但是在.NET中用bool表示)

 public Operator ToOperator(DataRow row)方法添加IsDeleted字段,如下:

op.IsDeleted=(bool)row["IsDeleted"];

第四步:在OperatorADL.cs中添加显示全部数据的ListAll()方法。代码如下:

//显示所有
        public Operator[] ListAll()
        {
            DataTable dt = SqlHelper.ExecuteDataTable("Select * from T_Operator where IsDeleted=0");
            Operator[] operators = new Operator[dt.Rows.Count];
            for (int i = 0; i < dt.Rows.Count;i++ )
            {
                operators[i] = ToOperator(dt.Rows[i]);
            }
            return operators;
        }

注意:相关的功能要放在统一文件夹下,便于管理

 

 

posted @ 2013-06-18 12:10  秋水惜朝  阅读(1106)  评论(0编辑  收藏  举报