我不断收到GetTotalMaterialCost中的错误我已经检查了整件事情。我甚至删除多余的con.Close,但错误仍然会提示。连接未关闭。连接的当前状态已打开。 C#
decimal GetTotalMaterialCost()
{
decimal total = 0;
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText =
"SELECT SUM(rm.Quantity * m.SellingPrice) AS TotalMaterialCost FROM Resource_Materials rm " +
"JOIN Materials m ON m.MaterialID = rm.MaterialID " +
"JOIN ProjectTasks t ON t.TaskID = rm.TaskID " +
"WHERE [email protected] HAVING COUNT (*) > 0";
cmd.Parameters.AddWithValue("@TaskID", Request.QueryString["ID"].ToString());
object data = cmd.ExecuteScalar();
if (data == null)
total = 0;
else
total = (decimal)cmd.ExecuteScalar();
con.Close();
return total;
}
protected void btnSave_Click(object sender, EventArgs e)
{
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandText = "UPDATE ProjectTasks SET [email protected], [email protected] " +
"WHERE [email protected]; " +
"SELECT TOP 1 TaskID FROM ProjectTasks ORDER BY TaskID DESC;";
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@Description", txtDescription.Text);
cmd.Parameters.AddWithValue("@TaskID", Request.QueryString["ID"].ToString());
cmd.ExecuteNonQuery();
cmd.CommandText = @"UPDATE Resource_Materials SET [email protected] WHERE TaskID=0; " +
"UPDATE Resource_Equipments SET [email protected] WHERE TaskID=0; " +
"UPDATE Resource_Vehicles SET [email protected] WHERE TaskID=0; " +
"UPDATE Resource_Contractors SET [email protected] WHERE TaskID=0; " +
"UPDATE Projects SET [email protected] WHERE [email protected]";
cmd.Parameters.AddWithValue("@ProjectID", Request.QueryString["ID"].ToString());
cmd.Parameters.AddWithValue("@ActualCost", GetAmount());
con.Close();
Helper.AddLog("1", "Add", "Assigned Resources to Task");
Response.Redirect("~/Projects/Default.aspx");
}
Here is the link for my whole code as reference
的所述误差是在线路679