首页 > 其他 > 详细

DataTable中的Clone以及Select用法

时间:2014-03-24 14:50:12      阅读:561      评论:0      收藏:0      [点我收藏+]

在做的项目中有评论功能,要求是如果是社区主任的回复,就自动置顶,代表是官方的回复,原来的数据库中没的这个置顶字段,所以就想到 了在New出来的DataTable中来实现这个功能。

    /// <summary>
    /// 加载评论信息
    /// </summary>
    private void LoadData()
    {
        string strSql = ViewState["strSql"].ToString();
        //Response.Write(strSql);
        DataTable myDt = myDbAccess.GetTable(strSql);

        DataTable DT = new DataTable();
       
        DT.Columns.Add("NickName");
        DT.Columns.Add("HeadPhoto");
        DT.Columns.Add("UserNo");
        DT.Columns.Add("CommentDate");
        DT.Columns.Add("CommentContent");
        DT.Columns.Add("IfTop",typeof(Int16));//如果是社区主任回复的,就自动置顶=1,代表官方回复

        for (int i = 0; i < myDt.Rows.Count; i++)
        {
            string strHeadPhoto, strSex;
            DataRow dr = DT.NewRow();
            dr["CommentDate"] = myDt.Rows[i]["cDatetime"].ToString();
            dr["CommentContent"] = myDt.Rows[i]["cContent"].ToString();
            dr["NickName"] = myDt.Rows[i]["NickName"].ToString();
            //dr["UserNo"] = myDt.Rows[i]["UserNO"].ToString();
            //加密用户名  2014年2月19日12:30:26   小马
            dr["UserNo"] =CryptoHelper.Encrypt(myDt.Rows[i]["UserNO"].ToString(),"ABCDEFGHIJKLMNOP");
            strHeadPhoto = myDt.Rows[i]["HeadPhoto"].ToString();
            strSex = myDt.Rows[i]["Sex"].ToString();

            if (myDbAccess.FileExists(strHeadPhoto))
            {
                dr["HeadPhoto"] = strHeadPhoto;
            }
            else
            {
                dr["HeadPhoto"] = MyCheck.FormatUserPic(strHeadPhoto, strSex);
            }
            if (myDbAccess.CheckSNSHead(myDt.Rows[i]["UserNO"].ToString()))
            {
                dr["IfTop"] = 1;
            }
            else {
                dr["IfTop"] = 0;
            }
            DT.Rows.Add(dr);
        }

        //2014年3月24日10:43:04  小马   如果是社区主任回复的就置顶,代表官方回复 
      DataRow[] sortrows= DT.Select("1=1","IfTop DESC");//根据置顶来排序(第一个参数是where ,第二个参数是排序字段以及排序规则)
      DataTable SortDT = new DataTable();//创建新表
      SortDT = DT.Clone();//把上面的DT表结构复制到 新表中
      foreach (DataRow row in sortrows) {//为新表填充数据
          SortDT.Rows.Add(row.ItemArray);
      }


DataTable的Select()方法类似于我们用sql语句,这里用两个参数的方法是表示:第一个参数是需要传入的where条件,但是where不用写,第二个参数代表你需要排序的字段,直接写上排序字段名称和排序规则就可以了,不需要写order by.

Clone方法是把原来表中的定义好的列名这些复制到 新的表中 ,也就是复制表结构到 新表。


欢迎加入.net技术交流群bubuko.com,布布扣


DataTable中的Clone以及Select用法,布布扣,bubuko.com

DataTable中的Clone以及Select用法

原文:http://blog.csdn.net/itmaxin/article/details/21938295

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!