【发布时间】:2018-09-28 06:23:41
【问题描述】:
我是存储过程的初学者。我想获得 2 列的总和并将其显示在 HTML 中的不同标签中。我想知道我的代码问题的主要根源是什么。
C# 调试器说“确保该列存在于表中”。
存储过程:
CREATE PROCEDURE [dbo].[spTotalOverTime]
@tsdate DATE = '2018/1/1'
AS
BEGIN
SELECT SUM(Overtime), SUM(PlanOt)
FROM tblTimesheet
WHERE YEAR(tsDate) = YEAR(@tsDate) AND MONTH(tsDate) = MONTH(@tsdate)
END
HTML:
<div class="row cells12">
<div class="cell colspan4 offset1">
<h6 class="mif-hour-glass"> Total Planned Overtime:</h6>
<div>
<label id="lblPlan"></label>
</div>
<br />
</div>
<div class="cell colspan4 offset1">
<h6 class="mif-alarm"> Total Actual Overtime:</h6>
<div>
<label id="lblActual"></label>
</div>
</div>
</div>
C#
[WebMethod]
public string LoadOT(DateTime date)
{
List<OTTotal> mylist = new List<OTTotal>();
using (SqlConnection connection = new SqlConnection(connectionString()))
{
connection.Open();
SqlCommand cmd = new SqlCommand("spTotalOverTime", connection);
cmd.Parameters.Add("@tsdate", SqlDbType.Date).Value = date;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandTimeout = 0;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
mylist.Add(new OTTotal
{
OTAct = Convert.ToDouble(dr["Overtime"].ToString()),
OTPlan = Convert.ToDouble(dr["PlanOt"].ToString())
});
}
dr.Close();
connection.Close();
}
JavaScriptSerializer jss = new JavaScriptSerializer();
string jsn = jss.Serialize(mylist);
return jsn;
}
JavaScript
function getOTVal(year, month) {
var asd = "{'date':'" + year + "/" + month + "/1" + "'}";
$.ajax({
type: 'POST',
url: '../WebService/wsSummary.asmx/LoadOT',
dataType: 'json',
data: asd,
contentType: 'application/json; charset=utf-8',
success: function (response) {
var cells = eval("(" + response.d + ")");
for (var i = 0; i < cells.length; i++) {
$('#lblActual').text(cells[i].OTAct);
$('#lblPlan').text(cells[i].OTPlan);
}
},
error: function (error) {
alert(JSON.stringify(error))
console.log(error);
}
});
}
【问题讨论】:
-
现在的行为是什么(如果您有错误是什么错误?)以及您期望的正确行为是什么?
-
似乎您在存储过程中缺少“分组依据”..
-
@AlexandruPopa - 当我运行系统时,C# 调试器说确保该列存在于表中
-
当我们使用
SUM@ShijuShaji时,我们真的需要group by吗 -
@Alexis 那么为什么您的问题中没有关键信息(最好是
CREATE TABLE,以便我们重现问题)?
标签: javascript c# html sql-server