You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提醒邮件无法显示报告剩余完成天数的技术求助

问题修复方案

针对邮件无法显示报告截止剩余天数的问题,结合你列出的三个问题点,直接给出具体修复代码和说明:

1. 修正Page_Load中的变量赋值与类型转换错误

错误代码(示例):

// 错误:把EmpEmail赋值给numDaysLeft,类型完全不匹配
int numDaysLeft = (int)dr["EmpEmail"];

修复后代码:
假设存储过程返回的结果集中有DaysRemaining字段表示剩余天数,修正为:

// 从正确的字段取值,确保类型转换正确
int numDaysLeft = Convert.ToInt32(dr["DaysRemaining"]);
// 或者用更安全的写法,避免空值/类型异常
if (int.TryParse(dr["DaysRemaining"].ToString(), out int daysLeft))
{
    numDaysLeft = daysLeft;
}
else
{
    // 处理取值失败的情况,比如默认设为0
    numDaysLeft = 0;
}

2. 给SendReminderEmail中的临时DataTable添加numDaysLeft列

错误代码(示例):

DataTable tempTable = new DataTable();
tempTable.Columns.Add("EmpEmail");
// 缺少numDaysLeft列
DataRow row = tempTable.NewRow();
row["EmpEmail"] = empEmail;
// 没有给numDaysLeft赋值

修复后代码:

DataTable tempTable = new DataTable();
// 添加numDaysLeft列,类型设为int
tempTable.Columns.Add("EmpEmail", typeof(string));
tempTable.Columns.Add("numDaysLeft", typeof(int));

DataRow row = tempTable.NewRow();
row["EmpEmail"] = empEmail;
// 给numDaysLeft列赋值
row["numDaysLeft"] = numDaysLeft;
tempTable.Rows.Add(row);

3. 修正String.Format中的字段名拼写错误

错误代码(示例):

// 错误:numDaysleft的L是小写,和变量/列名的numDaysLeft不匹配
string emailBody = String.Format("您还有 {0} 天提交报告", numDaysleft);

修复后代码:

// 修正拼写,确保和变量名一致(大写L)
string emailBody = String.Format("您还有 {0} 天提交报告", numDaysLeft);
// 如果是绑定DataTable的字段,也要确保名称一致:
string emailBody = String.Format("您还有 {0} 天提交报告", row["numDaysLeft"]);

完成以上三处修正后,邮件应该就能正常显示剩余截止天数了。

内容的提问来源于stack exchange,提问作者Tairoc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 19:36:09