我正在使用这段代码:
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();
同时考虑将您的 SqlConnection
和 SqlCommand
对象包含在 using
statement 中,这将确保资源处置,即使在出现异常的情况下也是如此。
关于c# - 使用 float(C#) 对 sql 列求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480595/