Invalid usage of aggregate function Sum() and Type: String

后端 未结 4 470
礼貌的吻别
礼貌的吻别 2020-12-21 15:25

I have a data table and a column contains int values. I have not specified the column with any datatype. When I perform the following.

object sum = dttest.Co         


        
4条回答
  •  粉色の甜心
    2020-12-21 16:07

    try

    object sum = dttest.Compute("Sum(Value)", "[Value] IS NOT NULL");
    

    Sample code

        static DataTable GetTable()
        {
            DataTable table = new DataTable();
            table.Columns.Add("Value", typeof(int));
            table.Columns.Add("Name", typeof(string));
            table.Rows.Add(null, "a");
            table.Rows.Add(50, "a");
            table.Rows.Add(10, "a");
            table.Rows.Add(21, "b");
            table.Rows.Add(100, "b");
            return table;
        }
        static void Main(string[] args)
        {
            DataTable dt =GetTable();
            var str = dt.Compute("Sum(Value)", "Name='a' and Value is not null");
        }
    

    You can't Call Sum with Convert, but you can try below

    DataTable dt =GetTable();
    dt.Columns.Add("temp", typeof(int), "Convert(Value, 'System.Int32')");
    var str = dt.Compute("Sum(temp)", "Name='a' and Value is not null");
    

提交回复
热议问题