private void button1_Click(object sender, EventArgs e)
 {
     if ((waterMarkTextBox1.Text == "") || (waterMarkTextBox2.Text == "") || (waterMarkTextBox3.Text == "") || (waterMarkTextBox4.Text == ""))
     {
         ErrorForm ErrorWindow = new ErrorForm();
         ErrorWindow.label1.Text = "Поля формы не могут быть пустыми";
         ErrorWindow.ShowDialog();
     }
     else
     {
         Result rez = Checks.CheckOperation(waterMarkTextBox1.Text, waterMarkTextBox2.Text, waterMarkTextBox3.Text, waterMarkTextBox4.Text);
         if (rez.Success)
         {
             Close();
         }
         else
         {
             ErrorForm ErrorWindow = new ErrorForm();
             ErrorWindow.label1.Text = rez.Message;
             ErrorWindow.ShowDialog();
         }
     }
 }
Example #2
0
        private void button2_Click(object sender, EventArgs e)
        {
            if (treeView1.SelectedNode.Parent != null && treeView1.SelectedNode.Parent.Text == "Tables")
            {
                panel1.Controls.Clear();
                Form6 tdata = new Form6(treeView1.SelectedNode.Text, treeView1.SelectedNode.Parent.Parent.Text);
                tdata.TopLevel        = false;
                tdata.AutoScroll      = true;
                tdata.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(tdata);
                tdata.Show();
            }
            else if (treeView1.SelectedNode.Text == "Tables")
            {
                panel1.Controls.Clear();
                Tablas tablas = new Tablas(treeView1.SelectedNode.Parent.Text);
                tablas.TopLevel        = false;
                tablas.AutoScroll      = true;
                tablas.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(tablas);
                tablas.Show();
            }
            else if (treeView1.SelectedNode.Text == "Views")
            {
                panel1.Controls.Clear();
                Views views = new Views(treeView1.SelectedNode.Parent.Text);
                views.TopLevel        = false;
                views.AutoScroll      = true;
                views.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(views);
                views.Show();
            }
            else if (treeView1.SelectedNode.Text == "Procedures")
            {
                panel1.Controls.Clear();
                Procedures procedures = new Procedures(treeView1.SelectedNode.Parent.Text);
                procedures.TopLevel        = false;
                procedures.AutoScroll      = true;
                procedures.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(procedures);
                procedures.Show();
            }
            else if (treeView1.SelectedNode.Text == "Checks")
            {
                panel1.Controls.Clear();
                Checks checks = new Checks(treeView1.SelectedNode.Parent.Text);
                checks.TopLevel        = false;
                checks.AutoScroll      = true;
                checks.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(checks);
                checks.Show();
            }
            else if (treeView1.SelectedNode.Text == "Indexes")
            {
                panel1.Controls.Clear();
                Indexes indexes = new Indexes(treeView1.SelectedNode.Parent.Text);
                indexes.TopLevel        = false;
                indexes.AutoScroll      = true;
                indexes.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(indexes);
                indexes.Show();
            }
            else if (treeView1.SelectedNode.Text == "Triggers")
            {
                panel1.Controls.Clear();
                Triggers triggers = new Triggers(treeView1.SelectedNode.Parent.Text);
                triggers.TopLevel        = false;
                triggers.AutoScroll      = true;
                triggers.FormBorderStyle = FormBorderStyle.None;
                panel1.Controls.Add(triggers);
                triggers.Show();
            }
            else
            {
                string text = treeView1.SelectedNode.Text;
                foreach (var con in Globals.connections)
                {
                    if (con.conn_name == text)
                    {
                        Globals.connection_string = "Driver=Adaptive Server Enterprise; Server=" + con.server + ";Port=" + con.port + ";";
                        Form3 login = new Form3();
                        login.ShowDialog();
                        OdbcConnection conn = new OdbcConnection(Globals.connection_string);
                        conn.Open();
                        OdbcCommand    command = conn.CreateCommand();
                        OdbcDataReader reader;
                        command.CommandText = "select name from sysdatabases";
                        reader = command.ExecuteReader();
                        List <string> list = new List <string>();
                        while (reader.Read())
                        {
                            list.Add(reader.GetString(0));
                        }
                        conn.Close();
                        List <TreeNode> dbs = new List <TreeNode>();

                        foreach (var db in list)
                        {
                            List <TreeNode> objects = new List <TreeNode>();
                            List <TreeNode> tabs    = new List <TreeNode>();
                            string          idk     = Globals.connection_string + "database=" + db + ";";
                            conn = new OdbcConnection(idk);
                            try
                            {
                                conn.Open();
                                command             = conn.CreateCommand();
                                command.CommandText = "select name from sysobjects where type = 'U' and uid = user_id()";
                                reader = command.ExecuteReader();
                                List <string> list1 = new List <string>();
                                while (reader.Read())
                                {
                                    list1.Add(reader.GetString(0));
                                }
                                conn.Close();
                                foreach (var tab in list1)
                                {
                                    tabs.Add(new TreeNode(tab));
                                }
                                objects.Add(new TreeNode("Tables", tabs.ToArray()));
                                objects.Add(new TreeNode("Views"));
                                objects.Add(new TreeNode("Indexes"));
                                objects.Add(new TreeNode("Procedures"));
                                objects.Add(new TreeNode("Triggers"));
                                objects.Add(new TreeNode("Checks"));
                                dbs.Add(new TreeNode(db, objects.ToArray()));
                            }
                            catch (Exception)
                            {
                            }
                        }
                        treeView1.BeginUpdate();
                        treeView1.SelectedNode.Remove();
                        treeView1.Nodes.Add(new TreeNode(text, dbs.ToArray()));
                        treeView1.EndUpdate();
                    }
                }
            }
        }
        /// <summary>
        /// При корректности данных в файле, загружает базу данных из него и делает ее рабочей базой данных.
        /// </summary>
        /// <param name="filePath"> Путь к файлу базы данных. </param>
        /// <returns> Результат загрузки базы данных. </returns>
        public static Result LoadInstance(string filePath)
        {
            Database database = new Database();
            Result   result   = new Result(true);
            Result   adding   = new Result(true);

            if (File.ReadAllText(filePath).Length < 1)
            {
                return(new Result(false) + "Невозможно добавить пустую базу данных");
            }
            foreach (var str in File.ReadAllLines(filePath))
            {
                if (!result.Success || !adding.Success)
                {
                    break;
                }
                var elems = str.Split(' ');
                switch (str[0])
                {
                case '2':
                    if (elems.Length == 4)
                    {
                        Result res1 = Checks.CheckClient(elems[1], elems[2], elems[3]);
                        result += res1;
                        if (res1)
                        {
                            adding = database.AddClient(new Client(Convert.ToInt32(elems[1]),
                                                                   elems[2], elems[3]));
                        }
                    }
                    else
                    {
                        result.Success = false;
                        result        += "Количество аргументов в строке не соответствует количеству параметров клиента";
                    }
                    break;

                case '1':
                    if (elems.Length == 4)
                    {
                        Result res2 = Checks.CheckMachine(elems[1], elems[2], elems[3]);
                        result += res2;
                        if (res2)
                        {
                            adding = database.AddMachine(new Machine(Convert.ToInt32(elems[1]),
                                                                     elems[2], elems[3]));
                        }
                    }
                    else
                    {
                        result.Success = false;
                        result        += "Количество аргументов в строке не соответствует количеству параметров банкомата";
                    }

                    break;

                case '3':
                    if (elems.Length == 5)
                    {
                        Result res3 = Checks.CheckOperation(elems[1], elems[2], elems[3], elems[4]);
                        result += res3;
                        if (res3)
                        {
                            adding = database.AddOperation(new Operation(elems[1],
                                                                         Convert.ToInt32(elems[2]), Convert.ToInt32(elems[3]),
                                                                         Convert.ToInt32(elems[4])));
                        }
                    }
                    else
                    {
                        result.Success = false;
                        result        += "Количество аргументов в строке не соответствует количеству параметров операции";
                    }

                    break;

                case '4':
                    if (elems.Length == 5)
                    {
                        Result res4 = Checks.CheckPercent(elems[1], elems[2], elems[3], elems[4]);
                        result += res4;
                        if (res4)
                        {
                            adding = database.AddPercent(new Percent(elems[1],
                                                                     elems[2], elems[3],
                                                                     Convert.ToInt32(elems[4])));
                        }
                    }
                    else
                    {
                        result.Success = false;
                        result        += "Количество аргументов в строке не соответствует количеству параметров процента операции";
                    }

                    break;

                default:
                    result.Success = false;
                    result        += "Обнаружена строка, начинающаяся с символа \'" + str[0] + "\', который не соответствует ни одному типу данных";
                    break;
                }
            }

            if (result.Success && (result += adding).Success)
            {
                _instance = database;
            }

            return(result);
        }