Ejemplo n.º 1
0
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(Stock5MinInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update Stock5MinInfo set ");
            strSql.Append("Symbol=@Symbol,");
            strSql.Append("Time=@Time,");
            strSql.Append("[open]=@open,");
            strSql.Append("[close]=@Close,");
            strSql.Append("High=@High,");
            strSql.Append("Low=@Low,");
            strSql.Append("Volume=@Volume,");
            strSql.Append("Turnover=@Turnover,");
            strSql.Append("UpNum=@UpNum,");
            strSql.Append("DownNum=@DownNum");
            strSql.Append(" where Symbol=@Symbol");
            SqlParameter[] parameters =
            {
                new SqlParameter("@Symbol",   SqlDbType.NVarChar,  10),
                new SqlParameter("@Time",     SqlDbType.DateTime),
                new SqlParameter("@open",     SqlDbType.Decimal,    9),
                new SqlParameter("@Close",    SqlDbType.Decimal,    9),
                new SqlParameter("@High",     SqlDbType.Decimal,    9),
                new SqlParameter("@Low",      SqlDbType.Decimal,    9),
                new SqlParameter("@Volume",   SqlDbType.NVarChar,  50),
                new SqlParameter("@Turnover", SqlDbType.NVarChar,  50),
                new SqlParameter("@UpNum",    SqlDbType.NVarChar,  50),
                new SqlParameter("@DownNum",  SqlDbType.NVarChar,  50),
                new SqlParameter("@Symbol",   SqlDbType.NVarChar, 10)
            };
            parameters[0].Value  = model.StockCode;
            parameters[1].Value  = model.Time;
            parameters[2].Value  = model.open;
            parameters[3].Value  = model.Close;
            parameters[4].Value  = model.High;
            parameters[5].Value  = model.Low;
            parameters[6].Value  = model.Volume;
            parameters[7].Value  = model.Turnover;
            parameters[8].Value  = model.UpNum;
            parameters[9].Value  = model.DownNum;
            parameters[10].Value = model.id;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Stock5MinInfo DataRowToModel(DataRow row)
        {
            Stock5MinInfo model = new Stock5MinInfo();

            if (row != null)
            {
                if (row["Symbol"] != null)
                {
                    model.StockCode = row["Symbol"].ToString();
                }
                if (row["Time"] != null && row["Time"].ToString() != "")
                {
                    model.Time = DateTime.Parse(row["Time"].ToString());
                }
                if (row["open"] != null && row["open"].ToString() != "")
                {
                    model.open = decimal.Parse(row["open"].ToString());
                }
                if (row["Close"] != null && row["Close"].ToString() != "")
                {
                    model.Close = decimal.Parse(row["Close"].ToString());
                }
                if (row["High"] != null && row["High"].ToString() != "")
                {
                    model.High = decimal.Parse(row["High"].ToString());
                }
                if (row["Low"] != null && row["Low"].ToString() != "")
                {
                    model.Low = decimal.Parse(row["Low"].ToString());
                }
                if (row["Volume"] != null)
                {
                    model.Volume = row["Volume"].ToString();
                }
                if (row["Turnover"] != null)
                {
                    model.Turnover = row["Turnover"].ToString();
                }
                if (row["UpNum"] != null)
                {
                    model.UpNum = row["UpNum"].ToString();
                }
                if (row["DownNum"] != null)
                {
                    model.DownNum = row["DownNum"].ToString();
                }
            }
            return(model);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(Stock5MinInfo model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into Stock5MinInfo(");
            strSql.Append("Symbol,Time,[open],[close],High,Low,Volume,Turnover,UpNum,DownNum)");
            strSql.Append(" values (");
            strSql.Append("@Symbol,@Time,@open,@Close,@High,@Low,@Volume,@Turnover,@UpNum,@DownNum)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters =
            {
                new SqlParameter("@Symbol",   SqlDbType.NVarChar,  10),
                new SqlParameter("@Time",     SqlDbType.DateTime),
                new SqlParameter("@Open",     SqlDbType.Decimal,    9),
                new SqlParameter("@Close",    SqlDbType.Decimal,    9),
                new SqlParameter("@High",     SqlDbType.Decimal,    9),
                new SqlParameter("@Low",      SqlDbType.Decimal,    9),
                new SqlParameter("@Volume",   SqlDbType.NVarChar,  50),
                new SqlParameter("@Turnover", SqlDbType.NVarChar,  50),
                new SqlParameter("@UpNum",    SqlDbType.NVarChar,  50),
                new SqlParameter("@DownNum",  SqlDbType.NVarChar, 50)
            };
            parameters[0].Value = model.StockCode;
            parameters[1].Value = model.Time;
            parameters[2].Value = model.open;
            parameters[3].Value = model.Close;
            parameters[4].Value = model.High;
            parameters[5].Value = model.Low;
            parameters[6].Value = model.Volume;
            parameters[7].Value = model.Turnover;
            parameters[8].Value = model.UpNum;
            parameters[9].Value = model.DownNum;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public Stock5MinInfo GetModel(string Symbol)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("select  top 1 Symbol,Time,[open],[close],High,Low,Volume,Turnover,UpNum,DownNum from Stock5MinInfo ");
            strSql.Append(" where Symbol=@Symbol");
            SqlParameter[] parameters =
            {
                new SqlParameter("@Symbol", SqlDbType.NVarChar, 10)
            };
            parameters[0].Value = Symbol;

            Stock5MinInfo model = new Stock5MinInfo();
            DataSet       ds    = DbHelperSQL.Query(strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(DataRowToModel(ds.Tables[0].Rows[0]));
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 5
0
        void SyncStoc5MinkInfo()
        {
            bool bool1        = TdxApi.OpenTdx(ErrInfo);
            int  ConnectionID = TdxApi.TdxHq_Multi_Connect(m_Server.IP, m_Server.Port, Result, ErrInfo);

            ALLlistCon.Add(ConnectionID);
            OverlistCon.Add(ConnectionID);
            //设置 这个bk 在工作

            List <StockInfo>            stockList = _oStockInfo.GetStockCodeList("TYPE=0");
            Dictionary <string, string> Message   = new Dictionary <string, string>();

            Message.Add("Result", "");
            Message.Add("ErrInfo", "");
            foreach (StockInfo s in stockList)
            {
                //try
                //{
                short Count = 10;
                bool1 = TdxApi.TdxHq_Multi_GetSecurityBars(ConnectionID, 0, 0, s.stockcode, 0, ref Count, Result, ErrInfo);
                if (Count != 0)
                {
                    string[] strRow = Result.ToString().Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);   //分解行的字符串
                                                                                                                            //string[] strColX = strRow[1].Split("\t".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                                                                                                                            //时间	开盘价	收盘价	最高价	最低价	成交量	成交额	涨家数	跌家数
                    for (int i = 1; i < strRow.Length; i++)
                    {
                        string[]      strCol = strRow[i].Split("\t".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        Stock5MinInfo stock  = new Stock5MinInfo();
                        if (!PublicTool.CanDateTime(strCol[0].Replace("--", "-")))
                        {
                            continue;
                        }
                        int IsHave = _oStock5MinInfo.GetRecordCount("Symbol='" + s.stockcode + "' and Time=CONVERT(datetime,'" + strCol[0].Replace("--", "-") + "',102)");
                        if (IsHave > 0)
                        {
                            continue;
                        }

                        stock.StockCode = s.stockcode;
                        stock.Time      = Convert.ToDateTime(strCol[0].Replace("--", "-"));
                        stock.open      = decimal.Parse(PublicTool.IsNumElseToZero(strCol[1]));
                        stock.Close     = decimal.Parse(PublicTool.IsNumElseToZero(strCol[2]));
                        stock.High      = decimal.Parse(PublicTool.IsNumElseToZero(strCol[3]));
                        stock.Low       = decimal.Parse(PublicTool.IsNumElseToZero(strCol[4]));
                        stock.Volume    = strCol[5];
                        stock.Turnover  = strCol[6];
                        //stock.UpNum = strCol[7];
                        //stock.DownNum = strCol[8];
                        int ID = _oStock5MinInfo.Add(stock);
                        if (ID > 0)
                        {
                            string message = "Current tiem is: " + Convert.ToDateTime(strCol[0].Replace("--", "-"));
                            //ReportProgress 方法把信息传递给 ProcessChanged 事件处理函数。
                            //第一个参数类型为 int,表示执行进度。
                            //如果有更多的信息需要传递,可以使用 ReportProgress 的第二个参数。
                            //这里我们给第二个参数传进去一条消息。
                            Message["Result"]  = Result.ToString();
                            Message["ErrInfo"] = ErrInfo.ToString();
                            Message["Message"] = message.ToString();
                        }
                        else
                        {
                            //记录日志
                            Message["Result"]  = Result.ToString();
                            Message["ErrInfo"] = ErrInfo.ToString();
                            Message["Message"] = "";
                            continue;
                        }
                    }
                }
                else
                {
                    Count = 10;
                    bool1 = TdxApi.TdxHq_Multi_GetSecurityBars(ConnectionID, 0, 0, s.stockcode, 0, ref Count, Result, ErrInfo);
                }
            }
            ALLlistCon.Remove(ConnectionID);
            OverlistCon.Remove(ConnectionID);
            TdxApi.TdxHq_Multi_Disconnect(ConnectionID);
        }