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

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

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApp1
{
    public partial class Form : System.Windows.Forms.Form
    {
        SqlConnection 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 вне форума Ответить с цитированием
Старый 02.06.2022, 08:40   #2
REZR
Пользователь
 
Регистрация: 05.04.2022
Сообщений: 26
По умолчанию

REZR, в отдельный класс: sqlConnection, загрузка и сохранение
Находится это все в private async void Form1_Load(object sender, EventArgs e).
И еще надо чтобы я мог выбирать файл(string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;Attac hDbFilename=C:\Users\Семё н\Desktop\Прога\WindowsFormsApp1\Wi ndowsFormsApp1\Database1. mdf;Integrated Security=True"; // расположение базы данных)
Вроде надо создать еще одну кнопку файл (назовем ее так) как выход и обновить. Зачем я не знаю, мне сказали сделать. Все работает, но мне нужно чтобы я мог выбирать, этот путь или как его, вроде понятно сказал, сам не до конца понял что надо сделать. Заранее спасибо.
REZR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите дописать сохранение в файл Dmitry98 Помощь студентам 0 27.12.2016 16:36
реализовать сохранение/загрузку массива структур в файл NewLamer&Programer Общие вопросы C/C++ 26 29.04.2013 21:19
Про загрузку вопросик. _Den_1984 Общие вопросы Delphi 27 17.12.2012 09:57
Про загрузку форм в С# an.net Общие вопросы .NET 8 11.04.2011 21:34
загрузку компьютера Bat{CMD}_Men Операционные системы общие вопросы 2 02.10.2009 16:05