none
使用datatable的compute方式时提示"输入字符串的格式不正确" RRS feed

  • 问题

  • string time = "DataTime >= #" + timestart.AddMonths(i) + "# AND DataTime < #" + timestart.AddMonths(i + 1) + "#";
    pb.Value = float.Parse(dt.Compute("Avg(AvgValue)", time).ToString());

    代码如上
    time变量赋值后为DataTime >= #2012/7/1 0:00:00# AND DataTime < #2012/8/1 0:00:00#

    请问这个Fliter应该怎么写的?

    2012年11月7日 6:07

答案

  • 还是提示同样的错误……

    是不是如果指定的time区间内AvgValue列没有数据的话会报错的?

    不,应该是可以的。你看我的例子:

    class Program
        {
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("count", typeof(int));
                dt.Columns.Add("datetime", typeof(DateTime));
                for (int i = 1; i < 11; i++)
                {
                    dt.Rows.Add(i, new DateTime(2012, 12, 20+i, 21, 21, 21));
                }
                dt.Rows[3][0] = DBNull.Value;
                Console.WriteLine(dt.Compute("avg(count)", "datetime>'2012-12-21 21:21:21' and datetime<'2012-12-25 21:21:21'"));
            }
        }

    请检查你那个过滤语句是否正确,有无语法错误。


    我的博客园
    慈善点击,点击此处
    和谐拯救危机,全集下载,净化人心

    • 已标记为答案 DeamSky 2012年11月9日 1:22
    2012年11月7日 9:08

全部回复