22,210
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 【雨量】时段数据有时会丢,补充丢失的数据返回新List.
/// </summary>
/// <param name="lst"></param>
/// <returns></returns>
protected List<Model.st_rain_r> ReturnModifyList(List<Model.st_rain_r> lst)
{
DateTime dtBegin = lst[0].TM;
DateTime dtEnd = lst[lst.Count - 1].TM;
TimeSpan ts = dtEnd.Subtract(dtBegin);
int recordCount = ts.Days * 24 + ts.Hours + 1;
int i = 0;
for (DateTime dtStart = lst[i].TM; i < recordCount - 1; dtStart = dtStart.AddHours(1))
{
Model.st_rain_r m = lst.Find(delegate(Model.st_rain_r inner) { return inner.TM == dtStart; });
if (m == null)
{
m = new FFWS.Model.st_rain_r();
m.STCD = lst[i].STCD;
m.TM = dtStart;
m.DRP = 0f;
lst.Insert(i, m);
}
i++;
}
return lst;
}
/// <summary>
/// 报文4 雨量测站监测信息
/// </summary>
/// <param name="STCD"></param>
/// <param name="beginDT"></param>
/// <param name="endDT"></param>
/// <returns></returns>
public List<Model.st_rain_r> GetRainfallForXML(string STCD, DateTime beginDT, DateTime endDT)
{
string strSql = "select * from st_rain_r where STCD=@stcd and TM between @beginTime and @endTime order by TM asc";
DbParameter[] cmdParms = {
ShanHongHelper.CreateInDbParameter("@stcd",DbType.AnsiStringFixedLength,STCD),
ShanHongHelper.CreateInDbParameter("@beginTime",DbType.DateTime,beginDT),
ShanHongHelper.CreateInDbParameter("@endTime",DbType.DateTime,endDT)};
using (DbDataReader dr = ShanHongHelper.ExecuteReader(CommandType.Text, strSql.ToString(), cmdParms))
{
List<Model.st_rain_r> lst = GetList(dr);
return ReturnModifyList(lst); //返回更新过的List
}
} }