110,571
社区成员
发帖
与我相关
我的任务
分享
public static void UpdateHisDataBase(int i, string StationNum)
{
HisDataSource.Service1Client hisDataSource = new HisDataSource.Service1Client();
string[] YC = hisDataSource.ReturnYC();
string DateNow = DateTime.Now.ToString("yyyy-MM-dd");
int HourNum = DateTime.Now.Hour;
int MinNum = DateTime.Now.Minute;
string ValueId = (HourNum * 12 + MinNum / 5).ToString();
string IdName = dataSet.Tables["stn01_YC"].Rows[i]["点名"].ToString(); //点名
int LineId = Convert.ToInt32(dataSet.Tables["stn01_YC"].Rows[i]["ID"].ToString()); //点号
float HisData = Convert.ToSingle(YC[i]); //历史数据为服务中那一刻的值
int HisId = Convert.ToInt32("1" + StationNum) * 10000 + LineId; //计算出历史库中的点号
//填入SQL用的SQL语句
string UpdateSql = "update [HisData_5min_2015] set Value" + "" + ValueId + " =" + HisData + " where SampleDate = '" + DateNow + "' and Id = " + HisId + " "; //根据前面的时间判断后赋予相应Value? 的值
SqlCommand UpdateCmd = new SqlCommand(UpdateSql, conn1);
UpdateCmd.ExecuteNonQuery();
}
每5min执行一次上面这个函数[/quote]
能Dispose的一定要Dispose[/quote]
好高端呀public static void UpdateHisDataBase(int i, string StationNum)
{
HisDataSource.Service1Client hisDataSource = new HisDataSource.Service1Client();
string[] YC = hisDataSource.ReturnYC();
string DateNow = DateTime.Now.ToString("yyyy-MM-dd");
int HourNum = DateTime.Now.Hour;
int MinNum = DateTime.Now.Minute;
string ValueId = (HourNum * 12 + MinNum / 5).ToString();
string IdName = dataSet.Tables["stn01_YC"].Rows[i]["点名"].ToString(); //点名
int LineId = Convert.ToInt32(dataSet.Tables["stn01_YC"].Rows[i]["ID"].ToString()); //点号
float HisData = Convert.ToSingle(YC[i]); //历史数据为服务中那一刻的值
int HisId = Convert.ToInt32("1" + StationNum) * 10000 + LineId; //计算出历史库中的点号
//填入SQL用的SQL语句
string UpdateSql = "update [HisData_5min_2015] set Value" + "" + ValueId + " =" + HisData + " where SampleDate = '" + DateNow + "' and Id = " + HisId + " "; //根据前面的时间判断后赋予相应Value? 的值
SqlCommand UpdateCmd = new SqlCommand(UpdateSql, conn1);
UpdateCmd.ExecuteNonQuery();
}
每5min执行一次上面这个函数[/quote]
能Dispose的一定要Dispose
HisDataSource.Service1Client hisDataSource = new HisDataSource.Service1Client();
SqlCommand UpdateCmd = new SqlCommand(UpdateSql, conn1);
//上面的这两行看好,有三个对象没有被释放掉,hisDataSource,UpdateCmd,conn1,它们都会保存在内存中直到终结器被调用为止。
//hisDataSource这个玩意你看看是个什么东西,不断的new出肯定会造成内存不断增加,你需要将其释放。
//第二行的conn1最好放在内部,像这样:
SqlConnection conn1 = new SqlConnection(connectString);
//所以修改如下:
using(SqlConnection conn1 = new SqlConnection(connectString))
{
using(SqlCommand UpdateCmd = new SqlCommand(UpdateSql, conn1))
{
conn1.Open();
UpdateCmd.ExecuteNonQuery();
}
}
//使用using,这样可以确保Dispose()会被运行
public static void UpdateHisDataBase(int i, string StationNum)
{
HisDataSource.Service1Client hisDataSource = new HisDataSource.Service1Client();
string[] YC = hisDataSource.ReturnYC();
string DateNow = DateTime.Now.ToString("yyyy-MM-dd");
int HourNum = DateTime.Now.Hour;
int MinNum = DateTime.Now.Minute;
string ValueId = (HourNum * 12 + MinNum / 5).ToString();
string IdName = dataSet.Tables["stn01_YC"].Rows[i]["点名"].ToString(); //点名
int LineId = Convert.ToInt32(dataSet.Tables["stn01_YC"].Rows[i]["ID"].ToString()); //点号
float HisData = Convert.ToSingle(YC[i]); //历史数据为服务中那一刻的值
int HisId = Convert.ToInt32("1" + StationNum) * 10000 + LineId; //计算出历史库中的点号
//填入SQL用的SQL语句
string UpdateSql = "update [HisData_5min_2015] set Value" + "" + ValueId + " =" + HisData + " where SampleDate = '" + DateNow + "' and Id = " + HisId + " "; //根据前面的时间判断后赋予相应Value? 的值
SqlCommand UpdateCmd = new SqlCommand(UpdateSql, conn1);
UpdateCmd.ExecuteNonQuery();
}
每5min执行一次上面这个函数