public List<CM_SendchitInfo> GetLocalList()
{
List<CM_SendchitInfo> list = new List<CM_SendchitInfo>();
string sql = "select top 5 * from SmsUNcom_send where state = '0' or sendyorn='0' and sendtime <= Getdate()";
SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text,sql.ToString());
while (dr.Read())
{
CM_SendchitInfo cm = new CM_SendchitInfo();
cm.SendId = dr.GetInt32(0);
cm.SendMobile = dr.GetString(1);
cm.SendMsg = dr.GetString(2);
cm.SendMsgType = dr.GetInt16(3);
cm.SendSendyorn = dr.GetInt16(4);
cm.SendState = dr.GetInt16(5);
cm.SendTime = dr.GetDateTime(6);
StrSendId = StrSendId + cm.SendId + ",";
list.Add(cm);
//Update();
}
Update(StrSendId.Remove(StrSendId.Length - 1, 1)); //提示这一行出错??
return list;
}
现在问题是我查询到表里没有数据时,Update(StrSendId.Remove(StrSendId.Length - 1, 1)); 这行出错,有数据没事。
这行怎么改啊?
{
List<CM_SendchitInfo> list = new List<CM_SendchitInfo>();
string sql = "select top 5 * from SmsUNcom_send where state = '0' or sendyorn='0' and sendtime <= Getdate()";
SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text,sql.ToString());
while (dr.Read())
{
CM_SendchitInfo cm = new CM_SendchitInfo();
cm.SendId = dr.GetInt32(0);
cm.SendMobile = dr.GetString(1);
cm.SendMsg = dr.GetString(2);
cm.SendMsgType = dr.GetInt16(3);
cm.SendSendyorn = dr.GetInt16(4);
cm.SendState = dr.GetInt16(5);
cm.SendTime = dr.GetDateTime(6);
StrSendId = StrSendId + cm.SendId + ",";
list.Add(cm);
//Update();
}
Update(StrSendId.Remove(StrSendId.Length - 1, 1));
return list;
}
/// <summary>
/// 读过之后的数据(0表示待发,1表示已经发过)
/// </summary>
public void Update(string StrSendId)
{
string sql = "update SmsUNcom_send set sendyorn='1' where id in (" + StrSendId + ")";
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sql);
}
/// <summary>
/// 发送结果状态(0表示发送失败,1表示发送成功)
/// </summary>
public void Updates(int state, int sendory, string StrSendId)
{
string sql = "update SmsUNcom_send set state ="+ state +",sendyorn="+sendory+"where id in("+StrSendId+")";
SqlHelper.ExecuteNonQuery(SqlHelper.ConnectionStringLocalTransaction,CommandType.Text,sql);
}
/// <summary>
/// 调用WebService
/// </summary>
这是原码
现在问题是我查询到表里没有数据时,Update(StrSendId.Remove(StrSendId.Length - 1, 1)); 这行出错,有数据没事。
这行怎么改啊? //---------------那就加一个保护性检查不就完了..
{
Update(StrSendId.Remove(StrSendId.Length - 1, 1));
}catch(Exception ex)
{}捕获异常 跳出你没有数据时候的报错。 有数据就不会出异常 那也就没有错。。
不过这是极端搞法。。
Update(StrSendId.Remove(StrSendId.Length - 1, 1));