一个DataTable dt,含有列:
order_Qty(double)
complete_qty(double)
现在要在dt中增加一个计算列,其表达式为(complete_qty-order_qty)/complete_qty,但是我这样写
dt.Add("marg",Type.GetType("System.Double"),"iif(complete_qty=0,null,(complete_qty-order_qty)/complete_qty"),但是为什么总是提示“试图除以零”的错误呢???我知道在Sql中可以用case 语句去完成,只想知道在DataTable中有没有方法去完成这种计算..
谢谢各位大虾米^_^

解决方案 »

  1.   

    用iifiif(complete_qty>0,(complete_qty-order_qty)/complete_qty,0)
      

  2.   

    没有问题
    using System;
    using System.Data;
    namespace ConsoleApplication13
    {
        class Program
        {
            static void Main(string[] args)
            {
                System.Data.DataTable table = new DataTable();
                table.Columns.Add("value1", typeof(int));
                table.Columns.Add("value2", typeof(int));            System.Data.DataRow dRow = table.NewRow();
                dRow["value1"] = 1;
                dRow["value2"] = 0;
                table.Rows.Add(dRow);
                System.Data.DataColumn column = new DataColumn("exp1", typeof(float));
                table.Columns.Add(column);
                column.Expression = "iif(value2>0,(value1)/value2,999)";
                Console.WriteLine(table.Rows[0]["exp1"]);            Console.Read();
            }
        }
    }
      

  3.   

    详细内容参考
    http://blog.csdn.net/jinjazz/archive/2008/04/08/2261721.aspx