Exemple #1
0
        /// <summary>
        /// DB股票代码校验, 并选出市场代码
        /// 合理返回true,不合理返回false
        /// </summary>
        public bool stock_checkout(string stock, ref Stock_Index si)
        {
            SqlProcess sp       = new SqlProcess();
            string     stockget = null;
            string     dbtable  = "stock ";
            DataTable  dt       = new DataTable();

            //查stock
            string sql = "select stkcode,market,stkname from" + CfgStruct.dbname + dbtable + "where stkcode =" + "'" + stock + "'";

            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到股票,返回false
            if (dt.Rows.Count == 0)
            {
                return(false);
            }
            else
            {
                stockget = dt.Rows[0]["stkcode"].ToString().Trim(); //去掉空格
            }
            //比较所选证券代码在DB中是否一致
            if (String.Compare(stock, stockget) == 0)
            //if (String.Compare(stockcode, stockget) == 0)
            {
                si.market    = Convert.ToInt32(dt.Rows[0]["market"].ToString().Trim());
                si.stockname = dt.Rows[0]["stkname"].ToString().Trim();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #2
0
        /// <summary>
        /// 用户登录,成功返回userid,空账户及密码错返回错误标志
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public int UserLogin(string username, string password)
        {
            int        userid  = 0;
            string     pwdinDB = null;
            SqlProcess sp      = new SqlProcess();
            DataTable  dt      = new DataTable();

            string sql = "select userid, pwd from market..customer where username = '******';";

            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);

            //未查到
            if (dt.Rows.Count == 0)
            {
                return(FlagDef.ACCOUNTWRONG);    //账户不存在
            }
            else
            {
                userid  = Int32.Parse(dt.Rows[0]["userid"].ToString().Trim());
                pwdinDB = dt.Rows[0]["pwd"].ToString().Trim();
                if (string.Compare(password, pwdinDB) != 0)
                {
                    userid = FlagDef.PWDWRONG;  //密码错误
                }
            }
            return(userid);
        }
Exemple #3
0
        /// <summary>
        /// 查DB用户配置信息
        /// </summary>
        /// <param name="connectionstring"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public bool GetUserConfigFromDB(int userid, ref string username)
        {
            SqlProcess sp = new SqlProcess();
            DataTable  dt = new DataTable();

            //查username
            string sql = "select username from" + CfgStruct.dbname + "customer where userid = " + userid.ToString();

            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
            {
                return(false);
            }
            username = dt.Rows[0]["username"].ToString().Trim();
            dt.Clear();
            sql = null;
            //查stocklist
            //sql = "select stocklist from" + CfgStruct.dbname + "cust_stockinfo where userid = " + userid.ToString();
            sql = "select stkcode,stkname from" + CfgStruct.dbname + "custselectstock where userid = " + userid.ToString();

            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
            {
                return(false);
            }
            //string stocklist = dt.Rows[0]["stocklist"].ToString().Trim();

            foreach (DataRow dr2 in dt.Rows)
            {
                CfgStruct.lns.Add(dr2["stkcode"].ToString().Trim() + ' ' + dr2["stkname"].ToString().Trim());
                //Response.Write(dr2["kjny"].ToString() + "<br>");
            }


            //string[] slist = stocklist.Split(',');
            //加入到自选列表缓存

            /*
             * foreach (string stkcode in slist)
             * {
             *  if(stkcode != "")
             *      CfgStruct.lns.Add(stkcode);
             * }
             */


            return(true);
        }
Exemple #4
0
        /// <summary>
        /// 修改用户自选表
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="stkcode"></param>
        /// <returns></returns>
        public bool ModiUserStocklistFromDB(int userid, string stkcode, int functype)
        {
            SqlProcess sp  = new SqlProcess();
            DataTable  dt  = new DataTable();
            string     sql = null;

            //功能判断
            switch (functype)
            {
            case FlagDef.ADD:
            {
                string selectstkname = "select stkname from" + CfgStruct.dbname + " stock where stkcode=" + stkcode;
                sp.ExecSingleSQL(CfgStruct.dbconnect_str, selectstkname, dt);
                if (dt.Rows.Count == 0)
                {
                    return(false);
                }
                string stkname = dt.Rows[0]["stkname"].ToString().Trim();
                sql = "insert" + CfgStruct.dbname + "custselectstock values('" + userid.ToString() + "','" + stkcode.ToString() + "','" + stkname.ToString() + "')";

                //加入到当前自选列表
                CfgStruct.lns.Add(stkcode + " " + stkname);
                break;
            }

            case FlagDef.REMOVE:
                //删除当前自选列表中stkcode
                foreach (string s in CfgStruct.lns)
                {
                    if (s.Split(' ')[0] == stkcode)
                    {
                        sql = "delete" + CfgStruct.dbname + "custselectstock where userid='" + userid.ToString() + "' and stkcode='" + stkcode.ToString() + "'";
                        CfgStruct.lns.Remove(s);
                        break;
                    }
                }
                break;

            default:
                break;
            }

            if (!sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql))
            {
                return(false);
            }
            return(true);
        }
Exemple #5
0
        /// <summary>
        /// 用户登录,成功返回userid,空账户及密码错返回错误标志
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public int UserLogin(string username, string password)
        {
            int userid = 0;
            string pwdinDB = null;
            SqlProcess sp = new SqlProcess();
            DataTable dt = new DataTable();

            string sql = "select userid, pwd from market..customer where username = '******';";
            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);

            //未查到
            if (dt.Rows.Count == 0)
                return FlagDef.ACCOUNTWRONG;    //账户不存在
            else
            {
                userid = Int32.Parse(dt.Rows[0]["userid"].ToString().Trim());
                pwdinDB = dt.Rows[0]["pwd"].ToString().Trim();
                if (string.Compare(password, pwdinDB) != 0)
                    userid = FlagDef.PWDWRONG;  //密码错误
            }
            return userid;
        }
Exemple #6
0
        /// <summary>
        /// 系统初始化
        /// </summary>
        private void System_Init()
        {
            string errorMsg = null;
            GeneralClass gc = new GeneralClass();
            SqlProcess sp = new SqlProcess();
            UserAccount ua = new UserAccount();

            //界面控制
            stockname_l.Visible = false;
            stockprice_l.Visible = false;
            updownpercent_l.Visible = false;
            volumem_l.Visible = false;
            volumev_l.Visible = false;
            preprice_l.Visible = false;
            cirmarketvalue_l.Visible = false;
            totalvalue_l.Visible = false;
            amplitude_l.Visible = false;
            pbratio_l.Visible = false;
            peratio_l.Visible = false;
            turnoverrate_l.Visible = false;
            toolProgressBar.Visible = false;
            //stockdata.txt路径
            CfgStruct.fileName = Directory.GetCurrentDirectory() + "\\stockdata.txt";
            //tmp_his.csv路径
            CfgStruct.hisdatafilepath = Directory.GetCurrentDirectory() + "\\tmp_his.csv";
            //system.ini路径
            string systemfile = Directory.GetCurrentDirectory() + "\\system.ini";
            //读system.ini
            if (!gc.ReadConfigFile(systemfile, ref CfgStruct.dbconnect_str, ref CfgStruct.dbname))
            {
                MessageBox.Show("-10000读取配置文件失败!请检查配置文件system.ini。");
                return;
            }
            //测试数据库连接
            if (!sp.ConnectSQL(CfgStruct.dbconnect_str))
            {
                MessageBox.Show("-10001数据库连接失败!请重新配置。");
                return;
            }

            //读系统配置信息
            if (!gc.GetSysConfigFromDB(ref errorMsg))
            {
                MessageBox.Show(errorMsg);
                MessageBox.Show("-10002数据库配置信息有误!请重新配置");
                return;
            }
            //用户登录
            string username = "******"; //默认admin登陆
            string userpwd = "990818";
            string loginmsg = null;
            bool loginerror = false;
            CfgStruct.curuserid = ua.UserLogin( username, userpwd );
            switch(CfgStruct.curuserid)
            {
                case FlagDef.ACCOUNTWRONG:
                    loginmsg = "-10003没有该账户:" + username;
                    loginerror = true;
                    break;
                case FlagDef.PWDWRONG:
                    loginmsg = "-10003账户密码错误:" + username;
                    loginerror = true;
                    break;
                default:
                    break;
            }
            if (loginerror)
            {
                MessageBox.Show(loginmsg);
                return;
            }

            //读用户配置信息
            if (!gc.GetUserConfigFromDB(CfgStruct.curuserid, ref username))
            {
                MessageBox.Show("-10004用户表及自选股表有误!请检查配置。");
                return;
            }
            lbusername.Text = username; //用户名显示
            RefreshOptionlist();    //刷新自选列表

            //初始化完成显示
            lb_syssem.Items.Clear();
            string showstock = "系统启动成功。";
            lb_syssem.Items.Add(showstock);
        }
Exemple #7
0
        /// <summary>
        /// DB股票代码校验, 并选出市场代码
        /// 合理返回true,不合理返回false
        /// </summary>
        public bool stock_checkout(string stock, ref Stock_Index si)
        {
            SqlProcess sp = new SqlProcess();
            string stockget = null;
            string dbtable = "stock ";
            DataTable dt = new DataTable();

            //查stock
            string sql = "select stkcode,market,stkname from" + CfgStruct.dbname + dbtable + "where stkcode =" + "'" + stock + "'";
            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到股票,返回false
            if (dt.Rows.Count == 0)
                return false;
            else
                stockget = dt.Rows[0]["stkcode"].ToString().Trim(); //去掉空格

            //比较所选证券代码在DB中是否一致
            if (String.Compare(stock, stockget) == 0)
            //if (String.Compare(stockcode, stockget) == 0)
            {
                si.market = Convert.ToInt32(dt.Rows[0]["market"].ToString().Trim());
                si.stockname = dt.Rows[0]["stkname"].ToString().Trim();
                return true;
            }
            else
                return false;
        }
Exemple #8
0
        /// <summary>
        /// 修改用户自选表
        /// </summary>
        /// <param name="userid"></param>
        /// <param name="stkcode"></param>
        /// <returns></returns>
        public bool ModiUserStocklistFromDB(int userid, string stkcode, int functype)
        {
            SqlProcess sp = new SqlProcess();
            DataTable dt = new DataTable();
            string sql = null;

            //功能判断
            switch (functype)
            {
                case FlagDef.ADD:
                    {
                        string selectstkname = "select stkname from" + CfgStruct.dbname + " stock where stkcode=" + stkcode;
                        sp.ExecSingleSQL(CfgStruct.dbconnect_str, selectstkname, dt);
                        if (dt.Rows.Count == 0)
                            return false;
                        string stkname = dt.Rows[0]["stkname"].ToString().Trim();
                        sql = "insert" + CfgStruct.dbname + "custselectstock values('" + userid.ToString() + "','" + stkcode.ToString() + "','" + stkname.ToString() + "')";

                        //加入到当前自选列表
                        CfgStruct.lns.Add(stkcode + " " + stkname);
                        break;
                    }

                case FlagDef.REMOVE:
                    //删除当前自选列表中stkcode
                    foreach (string s in CfgStruct.lns)
                    {
                        if (s.Split(' ')[0] == stkcode)
                        {
                            sql = "delete" + CfgStruct.dbname + "custselectstock where userid='" + userid.ToString() + "' and stkcode='" + stkcode.ToString() + "'";
                            CfgStruct.lns.Remove(s);
                            break;
                        }
                    }
                    break;
                default:
                    break;
            }

            if (!sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql))
                return false;
            return true;
        }
Exemple #9
0
        /// <summary>
        /// 查DB用户配置信息
        /// </summary>
        /// <param name="connectionstring"></param>
        /// <param name="userid"></param>
        /// <returns></returns>
        public bool GetUserConfigFromDB(int userid, ref string username)
        {
            SqlProcess sp = new SqlProcess();
            DataTable dt = new DataTable();

            //查username
            string sql = "select username from" + CfgStruct.dbname + "customer where userid = " + userid.ToString();
            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
                return false;
            username = dt.Rows[0]["username"].ToString().Trim();
            dt.Clear();
            sql = null;
            //查stocklist
            //sql = "select stocklist from" + CfgStruct.dbname + "cust_stockinfo where userid = " + userid.ToString();
            sql = "select stkcode,stkname from" + CfgStruct.dbname + "custselectstock where userid = " + userid.ToString();

            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
                return false;
            //string stocklist = dt.Rows[0]["stocklist"].ToString().Trim();

            foreach (DataRow dr2 in dt.Rows)
            {
                CfgStruct.lns.Add(dr2["stkcode"].ToString().Trim() + ' ' + dr2["stkname"].ToString().Trim());
                //Response.Write(dr2["kjny"].ToString() + "<br>");
            }

            //string[] slist = stocklist.Split(',');
            //加入到自选列表缓存

            /*
            foreach (string stkcode in slist)
            {
                if(stkcode != "")
                    CfgStruct.lns.Add(stkcode);
            }
            */

            return true;
        }
Exemple #10
0
        /// <summary>
        ///  读DB系统配置
        /// </summary>
        /// <returns></returns>
        public bool GetSysConfigFromDB(ref string errorMsg)
        {
            SqlProcess sp = new SqlProcess();
            DataTable dt = new DataTable();

            string sql = "select keyname, keyvalue, sysstatus from" + CfgStruct.dbname + "sysconfig";
            //string sql = "select keyname, keyvalue, sysstatus from stockmarket..sysconfig";
            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
            {
                errorMsg = "no data!";
                return false;
            }

            //查找各项配置的值
            DataRow[] dr;
            //Marketlist_Tencent
            dr = dt.Select("keyname = 'Marketlist_Tencent'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "实时行情路径缺少,Marketlist_Tencent not found";
                return false;
            }
            CfgStruct.marketlist_t = dr[0]["keyvalue"].ToString().Trim();
            //Markettimeline_Sina
            dr = dt.Select("keyname = 'Markettimeline_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "分时线路径缺少,Markettimeline_Sina not found";
                return false;
            }
            CfgStruct.market_timeline = dr[0]["keyvalue"].ToString().Trim();
            //Marketdailyk_Sina
            dr = dt.Select("keyname = 'Marketdailyk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "日K线路径缺少,Marketdailyk_Sina not found";
                return false;
            }
            CfgStruct.market_dailyk = dr[0]["keyvalue"].ToString().Trim();
            //Marketweekk_Sina
            dr = dt.Select("keyname = 'Marketweekk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "周K线路径缺少,Marketweekk_Sina not found";
                return false;
            }
            CfgStruct.market_weekk = dr[0]["keyvalue"].ToString().Trim();
            //Marketmonthk_Sina
            dr = dt.Select("keyname = 'Marketmonthk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "月K线路径缺少,Marketmonthk_Sina not found";
                return false;
            }
            CfgStruct.market_monthk = dr[0]["keyvalue"].ToString().Trim();
            //Market_daily_his_yahoo
            dr = dt.Select("keyname = 'Market_daily_his_yahoo'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "历史数据路径缺少,Market_daily_his_yahoo not found";
                return false;
            }
            CfgStruct.market_daily_his_url = dr[0]["keyvalue"].ToString().Trim();

            return true;
        }
Exemple #11
0
        /// <summary>
        ///  读DB系统配置
        /// </summary>
        /// <returns></returns>
        public bool GetSysConfigFromDB(ref string errorMsg)
        {
            SqlProcess sp = new SqlProcess();
            DataTable  dt = new DataTable();


            string sql = "select keyname, keyvalue, sysstatus from" + CfgStruct.dbname + "sysconfig";

            //string sql = "select keyname, keyvalue, sysstatus from stockmarket..sysconfig";
            sp.ExecSingleSQL(CfgStruct.dbconnect_str, sql, dt);
            //若未查到配置信息,返回false
            if (dt.Rows.Count == 0)
            {
                errorMsg = "no data!";
                return(false);
            }


            //查找各项配置的值
            DataRow[] dr;
            //Marketlist_Tencent
            dr = dt.Select("keyname = 'Marketlist_Tencent'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "实时行情路径缺少,Marketlist_Tencent not found";
                return(false);
            }
            CfgStruct.marketlist_t = dr[0]["keyvalue"].ToString().Trim();
            //Markettimeline_Sina
            dr = dt.Select("keyname = 'Markettimeline_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "分时线路径缺少,Markettimeline_Sina not found";
                return(false);
            }
            CfgStruct.market_timeline = dr[0]["keyvalue"].ToString().Trim();
            //Marketdailyk_Sina
            dr = dt.Select("keyname = 'Marketdailyk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "日K线路径缺少,Marketdailyk_Sina not found";
                return(false);
            }
            CfgStruct.market_dailyk = dr[0]["keyvalue"].ToString().Trim();
            //Marketweekk_Sina
            dr = dt.Select("keyname = 'Marketweekk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "周K线路径缺少,Marketweekk_Sina not found";
                return(false);
            }
            CfgStruct.market_weekk = dr[0]["keyvalue"].ToString().Trim();
            //Marketmonthk_Sina
            dr = dt.Select("keyname = 'Marketmonthk_Sina'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "月K线路径缺少,Marketmonthk_Sina not found";
                return(false);
            }
            CfgStruct.market_monthk = dr[0]["keyvalue"].ToString().Trim();
            //Market_daily_his_yahoo
            dr = dt.Select("keyname = 'Market_daily_his_yahoo'");
            if (dr[0].Table.Rows.Count == 0)
            {
                errorMsg = "历史数据路径缺少,Market_daily_his_yahoo not found";
                return(false);
            }
            CfgStruct.market_daily_his_url = dr[0]["keyvalue"].ToString().Trim();

            return(true);
        }
Exemple #12
0
        /// <summary>
        /// 系统初始化
        /// </summary>
        private void System_Init()
        {
            string       errorMsg = null;
            GeneralClass gc       = new GeneralClass();
            SqlProcess   sp       = new SqlProcess();
            UserAccount  ua       = new UserAccount();

            //界面控制
            stockname_l.Visible      = false;
            stockprice_l.Visible     = false;
            updownpercent_l.Visible  = false;
            volumem_l.Visible        = false;
            volumev_l.Visible        = false;
            preprice_l.Visible       = false;
            cirmarketvalue_l.Visible = false;
            totalvalue_l.Visible     = false;
            amplitude_l.Visible      = false;
            pbratio_l.Visible        = false;
            peratio_l.Visible        = false;
            turnoverrate_l.Visible   = false;
            toolProgressBar.Visible  = false;
            //stockdata.txt路径
            CfgStruct.fileName = Directory.GetCurrentDirectory() + "\\stockdata.txt";
            //tmp_his.csv路径
            CfgStruct.hisdatafilepath = Directory.GetCurrentDirectory() + "\\tmp_his.csv";
            //system.ini路径
            string systemfile = Directory.GetCurrentDirectory() + "\\system.ini";

            //读system.ini
            if (!gc.ReadConfigFile(systemfile, ref CfgStruct.dbconnect_str, ref CfgStruct.dbname))
            {
                MessageBox.Show("-10000读取配置文件失败!请检查配置文件system.ini。");
                return;
            }
            //测试数据库连接
            if (!sp.ConnectSQL(CfgStruct.dbconnect_str))
            {
                MessageBox.Show("-10001数据库连接失败!请重新配置。");
                return;
            }

            //读系统配置信息
            if (!gc.GetSysConfigFromDB(ref errorMsg))
            {
                MessageBox.Show(errorMsg);
                MessageBox.Show("-10002数据库配置信息有误!请重新配置");
                return;
            }
            //用户登录
            string username   = "******"; //默认admin登陆
            string userpwd    = "990818";
            string loginmsg   = null;
            bool   loginerror = false;

            CfgStruct.curuserid = ua.UserLogin(username, userpwd);
            switch (CfgStruct.curuserid)
            {
            case FlagDef.ACCOUNTWRONG:
                loginmsg   = "-10003没有该账户:" + username;
                loginerror = true;
                break;

            case FlagDef.PWDWRONG:
                loginmsg   = "-10003账户密码错误:" + username;
                loginerror = true;
                break;

            default:
                break;
            }
            if (loginerror)
            {
                MessageBox.Show(loginmsg);
                return;
            }

            //读用户配置信息
            if (!gc.GetUserConfigFromDB(CfgStruct.curuserid, ref username))
            {
                MessageBox.Show("-10004用户表及自选股表有误!请检查配置。");
                return;
            }
            lbusername.Text = username; //用户名显示
            RefreshOptionlist();        //刷新自选列表

            //初始化完成显示
            lb_syssem.Items.Clear();
            string showstock = "系统启动成功。";

            lb_syssem.Items.Add(showstock);
        }