c# - 使用 float(C#) 对 sql 列求和

标签 c# sql

我正在使用这段代码:

SqlConnection con = new SqlConnection(@"Data Source=(local);Initial     
Catalog=dbsoft;Integrated Security=True");
con.Open();
SqlCommand cmd = new SqlCommand("SELECT SUM(price) FROM fiscal");
cmd.Connection = con;
int sum = cmd.ExecuteScalar();
label3.Text = sum.ToString();
con.Close();

我收到此错误消息:

无法将类型“object”隐式转换为“int”。存在显式转换(是否缺少强制转换?)

我错过了什么吗?

最佳答案

SqlCommand.ExecuteScalar 返回一个对象,您必须将其强制转换/转换为您需要的类型。如果您希望您的 SUM 是数据库中的 float 类型,那么使用 double 因为 float 在 SQL Server maps到 C# 中的 double。喜欢:

double sum = (double) cmd.ExecuteScalar();

同时考虑将您的 SqlConnectionSqlCommand 对象包含在 using statement 中,这将确保资源处置,即使在出现异常的情况下也是如此。

关于c# - 使用 float(C#) 对 sql 列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480595/

相关文章:

c# - 为什么将 XAML 图像源设置为 URI 比使用 HttpClient 获取图像更快?

sql - Laravel Eloquent 中的 Sum 和页面返回

sql - 如何计算postgres中的中位数

c# - Visual Studio 正在将我的 C# 语法检查为 Visual Basic

c# - 神秘号码18888888888888888

c# - MVVM 命令绑定(bind)到 UWP 工具包汉堡菜单

php - 当 php mysql_query 在 phpmyadmin 中工作时,某些列的空白结果

sql - Postgresql关系加入

mysql - 适用于带有 SQL 2005 的 Windows Server 2008 R2 的最佳数据库

c# - HttpClient 究竟是如何处理超时的?