private int ExecPost()
{
string strsql = "select t.endtime from dbo.user_message u inner join dbo.tb_Terminal t on u.vip_id = t.vip_id where u.m_state='未回复'";
DataTable dtEndtime = getData(strsql);
int number = 0;
foreach (DataRow dr in dtEndtime.Rows)
{
DateTime endtime = DateTime.Parse(dr["endtime"].ToString());
if (endtime < DateTime.Now)
{
continue;
}
SmsWorkshop sms = new SmsWorkshop();
string sql = "select * from user_message where m_state = '未回复'";
DataTable dt = getData(sql);
if (dt != null)
{
foreach (DataRow row in dt.Rows)
{
if (row["isWeilan"].ToString() == "1")
{
//围栏回复
string mob = getTopMobileByVipid(1, row["vip_id"]).ToString();
if (mob == "0")
{
WriteDataLog("围栏:没有填写手机号码,发送失败!原内容为:" + row["m_content"].ToString());
UpdatePostState(row);
}
else
{
if (sms.PostMsg(mob, row["m_content"].ToString()))
{
WriteDataLog("围栏:已发送围栏回复成功!Mobile:" + mob);
if (UpdatePostState(row))
{
number = dt.Rows.Count;
WriteDataLog("围栏:更新围栏数据成功!Mobile:" + mob);
}
WriteDataLog("围栏:已发送围栏回复成功!Mobile:" + mob);
}
else
{
WriteDataLog("围栏:已发送围栏回复失败!Mobile:" + mob);
} } }
else if (row["isWeilan"].ToString() == "2")
{
//断电回复
string mob = getTopMobileByTerid(1, row["ter_id"].ToString()).ToString();
if (mob == "0")
{
WriteDataLog("断电:没有填写手机号码,发送失败!原内容为:" + row["m_content"].ToString());
UpdatePostState(row);
}
else
{
if (sms.PostMsg(mob, row["m_content"].ToString()))
{
WriteDataLog("断电:已发送断电回复成功!Mobile:" + mob);
if (UpdatePostState(row))
{
number = dt.Rows.Count;
WriteDataLog("断电:更新断电数据成功!Mobile:" + mob);
}
WriteDataLog("断电:已发送断电回复成功!Mobile:" + mob);
}
else
{
WriteDataLog("断电:已发送断电回复失败!Mobile:" + mob);
} }
}
else if (row["isWeilan"].ToString() == "0")
{
//普通短信
string lon, lat, sta, spe, dir, gpstime;
ClassSms cSms = new ClassSms();
cSms.message = row["m_content"].ToString();
cSms.mobi = long.Parse(row["m_mobile"].ToString());
string add = cutAddress(getAddress(cSms, out lon, out lat, out sta, out spe, out dir, out gpstime)); string postMsg = "";
if (sta == "" && spe == "" && lon == "" && lat == "")
{
postMsg = add;
}
else
{
//postMsg = cSms.message + " 状态:" + sta + ",速度:" + spe + "km/h,经纬度:" + CutThree(lon) + "," + CutThree(lat) + ",位置:" + add;
string threeSpe = ",速度:" + spe + "km/h";
string twoSta = sta.Substring(0, 2);
if (twoSta == "离线" || twoSta == "暂停" || twoSta == "停驶") threeSpe = "";
postMsg = cSms.message + " 状态:" + sta + threeSpe + ",位置:" + add;// +",定位时间:" + gpstime; ",方向:" + dir + }
if (sms.PostMsg(row["m_mobile"].ToString(), postMsg))
{
Console.WriteLine("已发送回复成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("已发送回复成功!Mobile:" + row["m_mobile"].ToString());
if (UpdatePostState(row))
{
number = dt.Rows.Count;
Console.WriteLine("更新数据成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("更新数据成功!Mobile:" + row["m_mobile"].ToString());
} }
else
{
Console.WriteLine("发送回复失败!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("发送回复失败!Mobile:" + row["m_mobile"].ToString());
}
}
else if (row["isWeilan"].ToString() == "10")
{
string cswtel = row["m_mobile"].ToString();
string cswmessage = row["m_content"].ToString();
if (sms.PostMsg(cswtel, cswmessage))
{
WriteDataLog("发送短信异常正常信息给csw成功,号码:" + row["m_mobile"].ToString());
if (UpdatePostState(row))
{
number = dt.Rows.Count;
Console.WriteLine("更新csw信息数据成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("更新csw信息数据成功!Mobile:" + row["m_mobile"].ToString());
}
}
else
{
WriteDataLog("发送短信异常正常信息给csw失败,号码:" + row["m_mobile"].ToString());
}
} }
}
}
return number;
}
黑色字体的时候是正常的程序,但是当我加入了红色字体后,程序还是能用,就是在日志中会出现,未将对象引用设置到对象的实例,请问这是哪里有问题啊?
{
string strsql = "select t.endtime from dbo.user_message u inner join dbo.tb_Terminal t on u.vip_id = t.vip_id where u.m_state='未回复'";
DataTable dtEndtime = getData(strsql);
int number = 0;
foreach (DataRow dr in dtEndtime.Rows)
{
DateTime endtime = DateTime.Parse(dr["endtime"].ToString());
if (endtime < DateTime.Now)
{
continue;
}
SmsWorkshop sms = new SmsWorkshop();
string sql = "select * from user_message where m_state = '未回复'";
DataTable dt = getData(sql);
if (dt != null)
{
foreach (DataRow row in dt.Rows)
{
if (row["isWeilan"].ToString() == "1")
{
//围栏回复
string mob = getTopMobileByVipid(1, row["vip_id"]).ToString();
if (mob == "0")
{
WriteDataLog("围栏:没有填写手机号码,发送失败!原内容为:" + row["m_content"].ToString());
UpdatePostState(row);
}
else
{
if (sms.PostMsg(mob, row["m_content"].ToString()))
{
WriteDataLog("围栏:已发送围栏回复成功!Mobile:" + mob);
if (UpdatePostState(row))
{
number = dt.Rows.Count;
WriteDataLog("围栏:更新围栏数据成功!Mobile:" + mob);
}
WriteDataLog("围栏:已发送围栏回复成功!Mobile:" + mob);
}
else
{
WriteDataLog("围栏:已发送围栏回复失败!Mobile:" + mob);
} } }
else if (row["isWeilan"].ToString() == "2")
{
//断电回复
string mob = getTopMobileByTerid(1, row["ter_id"].ToString()).ToString();
if (mob == "0")
{
WriteDataLog("断电:没有填写手机号码,发送失败!原内容为:" + row["m_content"].ToString());
UpdatePostState(row);
}
else
{
if (sms.PostMsg(mob, row["m_content"].ToString()))
{
WriteDataLog("断电:已发送断电回复成功!Mobile:" + mob);
if (UpdatePostState(row))
{
number = dt.Rows.Count;
WriteDataLog("断电:更新断电数据成功!Mobile:" + mob);
}
WriteDataLog("断电:已发送断电回复成功!Mobile:" + mob);
}
else
{
WriteDataLog("断电:已发送断电回复失败!Mobile:" + mob);
} }
}
else if (row["isWeilan"].ToString() == "0")
{
//普通短信
string lon, lat, sta, spe, dir, gpstime;
ClassSms cSms = new ClassSms();
cSms.message = row["m_content"].ToString();
cSms.mobi = long.Parse(row["m_mobile"].ToString());
string add = cutAddress(getAddress(cSms, out lon, out lat, out sta, out spe, out dir, out gpstime)); string postMsg = "";
if (sta == "" && spe == "" && lon == "" && lat == "")
{
postMsg = add;
}
else
{
//postMsg = cSms.message + " 状态:" + sta + ",速度:" + spe + "km/h,经纬度:" + CutThree(lon) + "," + CutThree(lat) + ",位置:" + add;
string threeSpe = ",速度:" + spe + "km/h";
string twoSta = sta.Substring(0, 2);
if (twoSta == "离线" || twoSta == "暂停" || twoSta == "停驶") threeSpe = "";
postMsg = cSms.message + " 状态:" + sta + threeSpe + ",位置:" + add;// +",定位时间:" + gpstime; ",方向:" + dir + }
if (sms.PostMsg(row["m_mobile"].ToString(), postMsg))
{
Console.WriteLine("已发送回复成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("已发送回复成功!Mobile:" + row["m_mobile"].ToString());
if (UpdatePostState(row))
{
number = dt.Rows.Count;
Console.WriteLine("更新数据成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("更新数据成功!Mobile:" + row["m_mobile"].ToString());
} }
else
{
Console.WriteLine("发送回复失败!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("发送回复失败!Mobile:" + row["m_mobile"].ToString());
}
}
else if (row["isWeilan"].ToString() == "10")
{
string cswtel = row["m_mobile"].ToString();
string cswmessage = row["m_content"].ToString();
if (sms.PostMsg(cswtel, cswmessage))
{
WriteDataLog("发送短信异常正常信息给csw成功,号码:" + row["m_mobile"].ToString());
if (UpdatePostState(row))
{
number = dt.Rows.Count;
Console.WriteLine("更新csw信息数据成功!Mobile:" + row["m_mobile"].ToString());
WriteDataLog("更新csw信息数据成功!Mobile:" + row["m_mobile"].ToString());
}
}
else
{
WriteDataLog("发送短信异常正常信息给csw失败,号码:" + row["m_mobile"].ToString());
}
} }
}
}
return number;
}
黑色字体的时候是正常的程序,但是当我加入了红色字体后,程序还是能用,就是在日志中会出现,未将对象引用设置到对象的实例,请问这是哪里有问题啊?
1、dtEndtime 为null
2、dr["endtime"]为null