DataTable的compute方法问题,求大神解答

徐徐徐徐徐 2014-05-09 09:12:00
DataTable dt = new DataTable();
dt.Columns.Add("ColName");
dt.Columns.Add("MinVal");
dt.Rows.Add('[JH.3DCS.3CE3216B]',0.1);
dt.Rows.Add('[JH.3DCS.3CE3216B]',0.2);
dt.Compute("min([JH.3DCS.3CE3216B])", ""));会报找不到列名
怎么解决啊!
大神给点建议
...全文
404 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
insus 2014-05-09
  • 打赏
  • 举报
回复
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
最后还是采用2楼的LInq解决吧, 谢谢大家!!!
zhao38322684 2014-05-09
  • 打赏
  • 举报
回复
。。。。。 =,= 在下才疏学浅。。。。没在列名中加过[]。。。。数据库规范很重要啊。。
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
引用 10 楼 zhao38322684 的回复:
 var dt = new DataTable();

            dt.Columns.Add("JH.3DCS.3CE3216B", typeof (int));
            for (int i = 1; i <= 10; i++)
            {
                DataRow dRow = dt.NewRow();
                dRow["JH.3DCS.3CE3216B"] = i;
                dt.Rows.Add(dRow);
            }


            object res = dt.Compute(@"min([JH.3DCS.3CE3216B])", "");


            Console.WriteLine(res);
列名是这样的[JH.3DCS.3CE3216B] dt.Columns.Add("[JH.3DCS.3CE3216B]", typeof (int));
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
引用 8 楼 feiyun0112 的回复:
你的列名加错了 DataTable dt = new DataTable(); dt.Columns.Add("JH.3DCS.3CE3216B"); dt.Rows.Add(0.1); dt.Rows.Add(0.2); dt.Rows.Add(0.3); dt.Rows.Add(0.4); Console.WriteLine(dt.Compute("min([JH.3DCS.3CE3216B])", ""));
我还是用HashTable把列名的对应关系存起来,后边方便取,列里边有的是[1.g1g. g],有的没有aa2.dd4
zhao38322684 2014-05-09
  • 打赏
  • 举报
回复
 var dt = new DataTable();

            dt.Columns.Add("JH.3DCS.3CE3216B", typeof (int));
            for (int i = 1; i <= 10; i++)
            {
                DataRow dRow = dt.NewRow();
                dRow["JH.3DCS.3CE3216B"] = i;
                dt.Rows.Add(dRow);
            }


            object res = dt.Compute(@"min([JH.3DCS.3CE3216B])", "");


            Console.WriteLine(res);
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
引用 6 楼 zhao38322684 的回复:
dt.Compute(@"min([JH.3DCS.3CE3216B])", "");


请结贴。谢谢。



未找到列 [JH.3DCS.3CE3216B]。
feiyun0112 2014-05-09
  • 打赏
  • 举报
回复
你的列名加错了
DataTable dt = new DataTable();
dt.Columns.Add("JH.3DCS.3CE3216B");
dt.Rows.Add(0.1);
dt.Rows.Add(0.2);
dt.Rows.Add(0.3);
dt.Rows.Add(0.4);

Console.WriteLine(dt.Compute("min([JH.3DCS.3CE3216B])", ""));
by_封爱 2014-05-09
  • 打赏
  • 举报
回复
你的列非得要弄的那么奇怪吗??

        DataTable dt = new DataTable();
        dt.Columns.Add("ColName",typeof(string));
        dt.Columns.Add("MinVal",typeof(decimal));
        dt.Rows.Add("1",1.1);
        dt.Rows.Add("2",2.2);
        var o = dt.Compute("min(MinVal)", "");
        Response.Write(o);
如果你的列里面有.肯定不行的..加了[]也不行 改名吧 下划线什么的 也可以啊...
zhao38322684 2014-05-09
  • 打赏
  • 举报
回复
dt.Compute(@"min([JH.3DCS.3CE3216B])", ""); 请结贴。谢谢。
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
引用 2 楼 insus 的回复:
Refer here: http://www.cnblogs.com/insus/p/3347465.html
Linq可以解决! 但是怎么用compute解决呢
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
引用 3 楼 feiyun0112 的回复:
你要计算MinVal列的最小值? dt.Compute("min([MinVal])", ""));
有点问题,其实是这样的 DataTable dt = new DataTable(); dt.Columns.Add("[JH.3DCS.3CE3216B]"); dt.Rows.Add(0.1); dt.Rows.Add(0.2); dt.Rows.Add(0.3); dt.Rows.Add(0.4); 我想查询[JH.3DCS.3CE3216B]列的最小值 dt.Compute("min([JH.3DCS.3CE3216B])", ""));会报找不到列名
feiyun0112 2014-05-09
  • 打赏
  • 举报
回复
你要计算MinVal列的最小值?

dt.Compute("min([MinVal])", ""));
insus 2014-05-09
  • 打赏
  • 举报
回复
徐徐徐徐徐 2014-05-09
  • 打赏
  • 举报
回复
大婶你在哪

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧