炫意html5
最早CSS3和HTML5移动技术网站之一

c#DataTable取值

根据一个列值 取去该行值

如: ID NAME AGE
2 3 4
5 6 7

根据2 取出来 234

根据5 取出来567

用了Select 取出来还是这个整表

Linq 也没办法

-·–·-

麻烦大家了 谢谢

回答

Select是投影,查询要用Where,不过Where查询返回的是多条数据,建议是使用实体类容器,比较DataTable方便多了,DataTable取值要进行拆箱转换,即麻烦还浪费性能

        static void Start() {
            var dt = StructTable();
            var ids = dt.AsEnumerable().Select(p => p["ID"]).ToArray();  //将表中的所有ID投影到一个数组中,不能用来查询
            //先将DataTable转成Enumerable,然后通过Where查询符合条件的DataRow,最后再枚举结果
            foreach (var dr in dt.AsEnumerable().Where(p => Convert.ToInt32(p["ID"]) == 2)) {
                //每次枚举的是DataTable的DataRow,即数据表中的数据行,通过列名就能获取行中的数据
                int id = Convert.ToInt32(dr["ID"]);
                string name = dr["Name"].ToString();
                int age = Convert.ToInt32(dr["Age"]);
            }
        }
        static DataTable StructTable() {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("ID", typeof(int)));
            dt.Columns.Add(new DataColumn("Name", typeof(string)));
            dt.Columns.Add(new DataColumn("Age", typeof(int)));
            DataRow dr1 = dt.NewRow();
            dr1["ID"] = 2;
            dr1["Name"] = "3";
            dr1["Age"] = 4;
            DataRow dr2 = dt.NewRow();
            dr2["ID"] = 5;
            dr2["Name"] = "6";
            dr2["Age"] = 7;
            dt.Rows.Add(dr1);
            dt.Rows.Add(dr2);
            return dt;
        }

    }

炫意HTML5 » c#DataTable取值

Java基础教程Android基础教程