【问题标题】:Specified cast is not valid when converting from decimal(10,2) to double从十进制(10,2)转换为双精度时,指定的强制转换无效
【发布时间】:2015-08-21 11:26:18
【问题描述】:

我正在从数据库中检索所有学费的总和,其中它等于输入的录取人数。 SQL SERVER 中列的数据类型是十进制(10,2)。当我想转换为双倍时,它显示错误“指定的演员表无效”。如何转换成双倍?

SqlConnection con6 = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
                    con6.Open();
                    string query = "SELECT sum(tutionfee) FROM fees where admno='"+admissionnumber.Text+"'";
                    SqlCommand comSelect = new SqlCommand(query, con6);
                    double ID = (double)comSelect.ExecuteScalar();

【问题讨论】:

    标签: c# asp.net sql-server


    【解决方案1】:

    您需要实际转换 C# 中的值。 doubledecimal 是 C# 中的两种不同类型。前者是内置类型,后者只是一个结构,主要在 C# 本身中实现。由于它们不相同,因此您不能只投射它们。在这种情况下,最简单的方法是使用 Convert 类:

    Convert.ToDouble((decimal)comSelect.ExecuteScalar());
    

    【讨论】:

    • 他应该能够做到:(double)(decimal)comSelect.ExecuteScalar(); 这包括拆箱操作和演员阵容。他试图将它们组合成一个不合法的操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多