예제 #1
0
        private void 导入ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult DialogResult1 = this.openFileDialog1.ShowDialog();

            if (DialogResult1 != System.Windows.Forms.DialogResult.OK)
            {
                return;
            }


            string[] FileContent = File.ReadAllLines(this.openFileDialog1.FileName, Encoding.Default);

            StringBuilder                       sbErr           = new StringBuilder(128);
            Dictionary <string, int>            dictIndex       = new Dictionary <string, int>();
            Dictionary <string, List <string> > dictTraderStock = new Dictionary <string, List <string> >();

            for (int i = 0; i < FileContent.Length; i++)
            {
                var      item = FileContent[i];
                string[] Data = FileContent[i].Split(',');
                if (dictTraderStock.ContainsKey(Data[0]))
                {
                    if (!dictTraderStock[Data[0]].Contains(Data[1]))
                    {
                        dictIndex.Add(Data[0] + "_" + Data[1], i);
                        dictTraderStock[Data[0]].Add(Data[1]);
                    }
                    else
                    {
                        var index = dictIndex[Data[0] + "_" + Data[1]];
                        sbErr.AppendFormat("交易员{0} 对应股票{1} 在{2}行数据有重复项, 与第{3}行数据发生冲突", Data[0], Data[1], i.ToString(), index).Append(Environment.NewLine);
                    }
                }
                else
                {
                    dictTraderStock.Add(Data[0], new List <string>()
                    {
                        Data[1]
                    });
                    dictIndex.Add(Data[0] + "_" + Data[1], i);
                }
            }
            if (sbErr.Length > 0)
            {
                Program.logger.LogInfo(sbErr.ToString());
                sbErr.Append("请修改至无重复项再导入!");
                MessageBox.Show(sbErr.ToString());
            }
            else
            {
                AASClient.AASServiceReference.DbDataSet.平台用户DataTable 平台用户DataTable1 = Program.AASServiceClient.QueryUser();
                for (int i = 1; i < FileContent.Length; i++)
                {
                    string[] Data = FileContent[i].Split(',');

                    买模式 买模式1 = (买模式)Enum.Parse(typeof(买模式), Data[6], false);
                    卖模式 卖模式1 = (卖模式)Enum.Parse(typeof(卖模式), Data[7], false);

                    try
                    {
                        foreach (AASClient.AASServiceReference.DbDataSet.平台用户Row 平台用户Row1 in 平台用户DataTable1.Where(r => r.用户名.Equals(Data[0].Trim())))
                        {
                            Program.AASServiceClient.AddTradeLimit(Data[0], Data[1], Data[2], byte.Parse(Data[3]), Data[4], Data[5], 买模式1, 卖模式1, int.Parse(Data[8]), decimal.Parse(Data[9]));
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(string.Format("导入第{0}条记录[{1} {2}]失败,{3}", i, Data[0], Data[1], ex.Message));
                        break;
                    }
                }
            }

            this.bindingSource交易额度.DataSource = Program.AASServiceClient.QueryTradeLimit();
        }