zoukankan      html  css  js  c++  java
  • 10.17小结:table.copy() 和 distinct 查询

    1. 当datatable 已存在于一个dataset中时,可以使用 ds.tables.add(dt.copy()) 来向dataset 中添加datatable;

    2. 当datarow已存在于一个dtA中时,可以使用dtB.importRow(dr)来向dtB中添加datarow;

    2. 在查询表格时,如果想查询两个字段,只当两个字段都相同时才过滤重复保留唯一,否则不过滤,这是可以这样使用distinct:

    select  distinct  a, b  from  table1

    3. 今天在往devexpress 中的treelist 控件中添加节点时,发现虽然添加上了但是界面不显示节点值,解决办法是在设计器里先给treelist添加一个列(当然,我的需求是只有一列的情况下),然后隐藏它即可。为什么要添加一列呢?因为在后台代码里我们是这样写的:

    TreeListNode FirstLevelNode = treeList1.AppendNode(null, root);
    FirstLevelNode.SetValue(treeList1.Columns[0], drFirstLevelNode["StateName"].ToString().Trim());

    这里的  treeList1.Columns[0]  就是我们添加的那一行(我自己理解的,不知道对不对,反正实践显示不添加就没法显示)。

    最后附上完整的往dev treelist 中根据数据库中数据动态添加节点代码:

    WellDAL dalWell = new WellDAL();
                TreeListNode root = treeList1.AppendNode(null, null);
                root.SetValue(treeList1.Columns[0], "本地数据库");
                //第一层节点
                DataTable dtFirstLevelNode = new DataTable();
                dtFirstLevelNode = dalWell.GetData("StateName");
                foreach (DataRow drFirstLevelNode in dtFirstLevelNode.Rows)
                {
                    TreeListNode FirstLevelNode = treeList1.AppendNode(null, root);
                    FirstLevelNode.SetValue(treeList1.Columns[0], drFirstLevelNode["StateName"].ToString().Trim());
                    //第二层节点
                    DataTable dtSecondLevelNode = new DataTable();
                    dtSecondLevelNode = dalWell.GetData("StateName", "FieldName");
                    foreach (DataRow drSecondLevelNode in dtSecondLevelNode.Rows)
                    {
                        if (drSecondLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim())
                        {
                            TreeListNode SecondLevelNode = treeList1.AppendNode(null, FirstLevelNode);
                            SecondLevelNode.SetValue(treeList1.Columns[0], drSecondLevelNode["FieldName"].ToString().Trim());
                            //第三层节点
                            DataTable dtThirdLevelNode = new DataTable();
                            dtThirdLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName");
                            foreach (DataRow drThirdLevelNode in dtThirdLevelNode.Rows)
                            {
                                if (drThirdLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drThirdLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim())
                                {
                                    TreeListNode ThirdLevelNode = treeList1.AppendNode(null, SecondLevelNode);
                                    ThirdLevelNode.SetValue(treeList1.Columns[0], drThirdLevelNode["BlockName"].ToString().Trim());
                                    //第四层节点
                                    DataTable dtForthLevelNode = new DataTable();
                                    dtForthLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName", "WellName");
                                    foreach (DataRow drForthLevelNode in dtForthLevelNode.Rows)
                                    {
                                        if (drForthLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drForthLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim() && drForthLevelNode["BlockName"].ToString().Trim() == drThirdLevelNode["BlockName"].ToString().Trim())
                                        {
                                            TreeListNode ForthLevelNode = treeList1.AppendNode(null, ThirdLevelNode);
                                            ForthLevelNode.SetValue(treeList1.Columns[0], drForthLevelNode["WellName"].ToString().Trim());
                                            //第五层节点
                                            DataTable dtFifthLevelNode = new DataTable();
                                            dtFifthLevelNode = dalWell.GetData("StateName", "FieldName", "BlockName", "WellName", "HoleNumber");
                                            foreach (DataRow drFifthLevelNode in dtFifthLevelNode.Rows)
                                            {
                                                if (drFifthLevelNode["StateName"].ToString().Trim() == drFirstLevelNode["StateName"].ToString().Trim() && drFifthLevelNode["FieldName"].ToString().Trim() == drSecondLevelNode["FieldName"].ToString().Trim() && drFifthLevelNode["BlockName"].ToString().Trim() == drThirdLevelNode["BlockName"].ToString().Trim() && drFifthLevelNode["WellName"].ToString().Trim() == drForthLevelNode["WellName"].ToString().Trim())
                                                {
                                                    TreeListNode FifthLevelNode = treeList1.AppendNode(null, ForthLevelNode);
                                                    FifthLevelNode.SetValue(treeList1.Columns[0], drFifthLevelNode["HoleNumber"].ToString().Trim());
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                treeList1.ExpandAll();

     效果图:

  • 相关阅读:
    LeetCode153 Find Minimum in Rotated Sorted Array. LeetCode162 Find Peak Element
    LeetCode208 Implement Trie (Prefix Tree). LeetCode211 Add and Search Word
    LeetCode172 Factorial Trailing Zeroes. LeetCode258 Add Digits. LeetCode268 Missing Number
    LeetCode191 Number of 1 Bits. LeetCode231 Power of Two. LeetCode342 Power of Four
    LeetCode225 Implement Stack using Queues
    LeetCode150 Evaluate Reverse Polish Notation
    LeetCode125 Valid Palindrome
    LeetCode128 Longest Consecutive Sequence
    LeetCode124 Binary Tree Maximum Path Sum
    LeetCode123 Best Time to Buy and Sell Stock III
  • 原文地址:https://www.cnblogs.com/Alex1994/p/9805891.html
Copyright © 2011-2022 走看看