public JyDataSet.已发委托DataTable QueryWTData(DateTime startDate, DateTime endDate, string strWhere) { StringBuilder sb = new StringBuilder(); JyDataSet.已发委托DataTable dtWt = new JyDataSet.已发委托DataTable(); string sql = string.Format("select 日期,组合号,委托编号,交易员,状态说明,市场代码,证券代码,证券名称,买卖方向,成交价格,成交数量,委托价格,委托数量,撤单数量 from dbo.已发委托 where 日期>='{0}' and 日期<='{1}'", startDate, endDate); sb.Append(sql); if (!string.IsNullOrEmpty(strWhere)) { sb.Append(string.Format(" and {0}", strWhere)); } DataTable resultDt = SQLHelper.ExecuteDt(sb.ToString()); foreach (DataRow dr in resultDt.Rows) { JyDataSet.已发委托Row newRow = dtWt.New已发委托Row(); dtWt.Add已发委托Row(newRow); newRow.日期 = Convert.ToDateTime(dr["日期"]); newRow.组合号 = dr["组合号"].ToString(); newRow.委托编号 = dr["委托编号"].ToString(); newRow.交易员 = dr["交易员"].ToString(); newRow.状态说明 = dr["状态说明"].ToString(); newRow.市场代码 = Convert.ToByte(dr["市场代码"]); newRow.证券代码 = dr["证券代码"].ToString(); newRow.证券名称 = dr["证券名称"].ToString(); newRow.买卖方向 = Convert.ToInt32(dr["买卖方向"]); newRow.成交价格 = Convert.ToDecimal(dr["成交价格"]); newRow.成交数量 = Convert.ToDecimal(dr["成交数量"]); newRow.委托价格 = Convert.ToDecimal(dr["委托价格"]); newRow.委托数量 = Convert.ToDecimal(dr["委托数量"]); newRow.撤单数量 = Convert.ToDecimal(dr["撤单数量"]); } return(dtWt); }
public bool SendWTData(JyDataSet.已发委托DataTable dtWT, string serverMac) { try { if (dtWT.Rows.Count == 0) { Program.logger.LogInfo(string.Format("接收server-{0}的已发委托DataTable.Rows=0", serverMac)); return(false); } JyDataSet.已发委托Row firstRow1 = dtWT[0]; //判断当前MAC是否已经更新数据 string sqlMac = string.Format("select 更新日期 from dbo.日志表 where 服务器MAC='{0}' and 数据类型='委托'", serverMac); DataTable dtMac = SQLHelper.ExecuteDt(sqlMac); if (dtMac.Rows.Count > 0) { int cDate = Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd")); if (cDate == Convert.ToInt32(dtMac.Rows[0]["更新日期"].ToString())) { string updateType = ConfigMain.GetConfigValue("UpdateType"); if ("0".Equals(updateType)) { //删除原有server Mac的数据 string sqlDel = string.Format("delete from dbo.已发委托 where 服务器MAC='{0}' and 日期='{1}'", serverMac, firstRow1.日期.ToString("yyyyMMdd")); SQLHelper.ExecuteSql(sqlDel); } } } StringBuilder sb = new StringBuilder(); sb.Append("begin "); Program.logger.LogInfo(string.Format("委托数据入库开始:{0},当前server-{1}", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), serverMac)); foreach (JyDataSet.已发委托Row 已发委托Row1 in dtWT) { string sql = string.Format("insert into dbo.已发委托(日期,组合号,委托编号,交易员,状态说明,市场代码,证券代码,证券名称,买卖方向,成交价格,成交数量,委托价格,委托数量,撤单数量,服务器MAC)values('{0}','{1}','{2}','{3}','{4}',{5},'{6}','{7}',{8},'{9}',{10},{11},{12},{13},'{14}');", 已发委托Row1.日期.ToString("yyyyMMdd"), 已发委托Row1.组合号, 已发委托Row1.委托编号, 已发委托Row1.交易员, 已发委托Row1.状态说明, 已发委托Row1.市场代码, 已发委托Row1.证券代码, 已发委托Row1.证券名称, 已发委托Row1.买卖方向, 已发委托Row1.成交价格, 已发委托Row1.成交数量, 已发委托Row1.委托价格, 已发委托Row1.委托数量, 已发委托Row1.撤单数量, serverMac ); sb.Append(sql); } sb.Append(" end;"); SQLHelper.ExecuteSql(sb.ToString()); //更新日志表 string sqlLog = string.Empty; SqlParameter[] sqlParm; if (dtMac.Rows.Count > 0) { sqlLog = "update dbo.日志表 set 更新日期=@更新日期,更新数量=@更新数量 where 服务器MAC=@服务器MAC and 数据类型='委托'"; sqlParm = new SqlParameter[] { new SqlParameter("@更新日期", Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd"))), new SqlParameter("@更新数量", dtWT.Rows.Count), new SqlParameter("@服务器MAC", serverMac) }; } else { sqlLog = "insert into dbo.日志表(服务器MAC,更新数量,数据类型,更新日期)values(@服务器MAC,@更新数量,@数据类型,@更新日期)"; sqlParm = new SqlParameter[] { new SqlParameter("@更新日期", Convert.ToInt32(firstRow1.日期.ToString("yyyyMMdd"))), new SqlParameter("@更新数量", dtWT.Rows.Count), new SqlParameter("@数据类型", "委托"), new SqlParameter("@服务器MAC", serverMac) }; } SQLHelper.ExecuteSql(sqlLog, sqlParm); Program.logger.LogInfo(string.Format("委托数据入库结束:{0},当前server-{1}", DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"), serverMac)); } catch (Exception ex) { Program.logger.LogInfo(string.Format("委托数据入库异常:{0},当前server-{1}", ex.Message, serverMac)); return(false); } return(true); }