Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Windows Forms
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 85 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2022, 16:10   #1
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию Добавить (загрузку) и отдельный класс

Код:
namespace WindowsFormsApp1
{
    public partial class Form : System.Windows.Forms.Form
 {
        SqlConnection sqlConnection; // для конекта базы данных (объект)
 
        // todo: в отдельный класс: sqlConnection, загрузка и сохранение
 
        public Form()
        {
            InitializeComponent();
        }
 
        private async void Form1_Load(object sender, EventArgs e)
        {
            //string connectionStringBase = @"Data Source=(LocalDB)\MSSQLLocalDB;Integrated Security=True;AttachDbFilename="; // расположение базы данных
            string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Семён\Desktop\Прога\WindowsFormsApp1\WindowsFormsApp1\Database1.mdf;Integrated Security=True"; // расположение базы данных
 
 sqlConnection = new SqlConnection(connectionString); // экз. класса с пареметром
 
  await sqlConnection.OpenAsync(); // сделать соединение открытым (ансинхронным) чтобы не тормозить польз. интерфейс
 
  SqlDataReader sqlReader = null; // для получения сод. базы данных
 
  SqlCommand command = new SqlCommand("SELECT * FROM [Products]", sqlConnection); // для запроса (выбераем все из таблицы)
 
            try //
            {
          sqlReader = await command.ExecuteReaderAsync(); // для счит. таблицы
 
          while (await sqlReader.ReadAsync()) // пройтись по всей счит. информации
                {
                    listBox1.Items.Add(Convert.ToString(sqlReader["Id"]) + "  |  " + Convert.ToString(sqlReader["Name"]) + "   |    " + Convert.ToString(sqlReader["Price"]) + "    |   " + Convert.ToString(sqlReader["Cols"])); // заполнение
                }
            }
            catch (Exception ex) //
            {
                MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); // вывод
            }
            finally //
            {
                if (sqlReader != null) //
                sqlReader.Close(); // закрыть sqlReader
            }
        }
 
        private void выходToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed) // чтобы не было утечки данных закрываем это
                sqlConnection.Close();
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (sqlConnection != null && sqlConnection.State != ConnectionState.Closed) // оброботчик событий, чтобы не было утечки данных закрываем это
                sqlConnection.Close(); //
        }
 
        private async void button1_Click_1(object sender, EventArgs e)
        {
            if (label7.Visible) // если все верно
                label7.Visible = false; //
 
            if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrWhiteSpace(textBox1.Text) && // если все верно
                !string.IsNullOrEmpty(textBox2.Text) && !string.IsNullOrWhiteSpace(textBox2.Text) &&
                !string.IsNullOrEmpty(textBox7.Text) && !string.IsNullOrWhiteSpace(textBox7.Text))
            {
                SqlCommand command = new SqlCommand("INSERT INTO [Products] (Name, Price, Cols)VALUES(@Name, @Price, @Cols)", sqlConnection); // команды для добавления информации
 
                command.Parameters.AddWithValue("Name", textBox1.Text); // чтобы знала что это (с ключом)
 
                command.Parameters.AddWithValue("Price", textBox2.Text); //
 
                command.Parameters.AddWithValue("Cols", textBox7.Text); //
 
                await command.ExecuteNonQueryAsync(); // выполнить команды
            }
            else
            {
                label7.Visible = true; //
 
                label7.Text = "Поля 'Имя' и 'Цена' и 'Количество' должны быть заполнены!"; // ошибка
            }
        }
 
        private async void обновитьToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            listBox1.Items.Clear(); // для дочистки
 
            SqlDataReader sqlReader = null; // для получения сод. базы данных
 
            SqlCommand command = new SqlCommand("SELECT * FROM [Products]", sqlConnection); // для запроса (выбераем все из таблицы)
 
            try //
            {
                sqlReader = await command.ExecuteReaderAsync(); // для счит. таблицы
 
                while (await sqlReader.ReadAsync()) // пройтись по всей счит. информации
                {
                    listBox1.Items.Add(Convert.ToString(sqlReader["Id"]) + "  |  " + Convert.ToString(sqlReader["Name"]) + "   |    " + Convert.ToString(sqlReader["Price"]) + "    |   " + Convert.ToString(sqlReader["Cols"])); // заполнение
                }
            }
            catch (Exception ex) //
            {
                MessageBox.Show(ex.Message.ToString(), ex.Source.ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); // вывод
            }
            finally //
            {
                if (sqlReader != null) //
                    sqlReader.Close(); // закрыть sqlReader
            }
        }
 
        private async void button2_Click_1(object sender, EventArgs e) //
        {
            if (label8.Visible) // если все верно
                label8.Visible = false; //
 
            if (!string.IsNullOrEmpty(textBox3.Text) && !string.IsNullOrWhiteSpace(textBox3.Text) && // если все верно
                !string.IsNullOrEmpty(textBox4.Text) && !string.IsNullOrWhiteSpace(textBox4.Text) &&
                !string.IsNullOrEmpty(textBox5.Text) && !string.IsNullOrWhiteSpace(textBox5.Text) &&
                !string.IsNullOrEmpty(textBox8.Text) && !string.IsNullOrWhiteSpace(textBox8.Text))
            {
                SqlCommand command = new SqlCommand("UPDATE [Products] SET [Name]=@Name, [Price]=@Price, [Cols]=@Cols WHERE [Id]=@Id", sqlConnection); // для обновления информации
 
                command.Parameters.AddWithValue("Id", textBox5.Text); // чтобы знала что это (с ключом)
                command.Parameters.AddWithValue("Name", textBox3.Text); //
                command.Parameters.AddWithValue("Price", textBox4.Text); //
                command.Parameters.AddWithValue("Cols", textBox8.Text); //
 
                await command.ExecuteNonQueryAsync(); // выполнить команды
            }
            else if (!string.IsNullOrEmpty(textBox4.Text) && !string.IsNullOrWhiteSpace(textBox4.Text)) // проверяем что что то должно быть
            {
                label8.Visible = true; //
 
                label8.Text = "Id должнен быть заполнен!"; //
            }
            else
            {
                label8.Visible = true; //
 
                label8.Text = "Поля 'Id', 'Имя' и 'Цена' и 'Количество' должны быть заполнены!"; // ошибка
            }
        }
 
        private async void button3_Click(object sender, EventArgs e)
        {
            if (label9.Visible) // если все верно
                label9.Visible = false; //
 
            if (!string.IsNullOrEmpty(textBox6.Text) && !string.IsNullOrWhiteSpace(textBox6.Text)) // проверяем что что то должно быть
            {
                SqlCommand command = new SqlCommand("DELETE FROM [Products] WHERE [Id]=@Id", sqlConnection); // для удаление информации
 
                command.Parameters.AddWithValue("Id", textBox6.Text); // // чтобы знала что это (с ключом)
 
                await command.ExecuteNonQueryAsync(); // // выполнить команды
            }
            else
            {
                label9.Visible = true; //
 
                label9.Text = "Id должнен быть заполнен!"; // ошибка
            }
        }
 
        private void справкаToolStripMenuItem_Click(object sender, EventArgs e)
        {
 
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
 
        }
    }
}
REZR вне форума Ответить с цитированием
Старый 05.06.2022, 16:10   #2
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию

REZR, У меня есть код. Надо добавить кнопу как обновить ( она будет называться добавить файл). Она будет добавлять в текст бокс мою базу данных, зачем мне это я не знаю, она автоматом добавляет, но мне сказали сделать. И в отдельный класс: sqlConnection. И подключение базы данных должно быть в отдельном методе. прошу помочь пожалуйста, мне этого задания для автомата не хватает, а он завтра, буду очень признательным за помощь. И надо чтобы я мог загружать эту базу данных в другой файл, у меня это закомментировано. Пример формы есть. Это на C# с формой.
REZR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 85 тыс рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в меню WP добавить класс TopperHarley WordPress и другие CMS 2 09.10.2017 18:57
Вынос создания формы в отдельный класс bulldog5293 Общие вопросы Delphi 26 23.02.2014 17:55
Добавить структуру в класс с++ enzaime Помощь студентам 1 20.05.2012 12:26
Добавить класс в проект2,похожий на класс из проекта1!оба проекта есть! xeops C# (си шарп) 0 15.05.2012 20:31
Как добавить Метод в класс Список с++ lirikoff Помощь студентам 5 26.08.2010 20:08