Задать вопрос
@a63826ndrew
Студент, новичок в Python

Как реализовать желаемую работу интерфейса?

Здравствуйте!
Я делаю программу - подобие банковского клиента для десктопа. И при её разработке возникло несколько моментов, которые я хотел бы уточнить:
1. Имеется форма пользователя, где он может ввести свое имя и фамилию и потом сохранить эти данные в БД, но также имеется поле для фотографии, при нажатии кнопки открывается проводник и через него в picturebox на форме выбранное изображение добавляется. Каким образом можно реализовать сохранение изображения? Я читал, что сохранять изображения в БД не лучший вариант, но можно хранить ссылки на изображения и как это реализовать?
2. По изначальной задумке, если пользователь ввел имя или фамилию и сохранил это в БД, то по повторному открытию формы эти же имя и фамилия должны появиться в тех же полях, где они были введены. Как это реализовать?
3. Есть форма, где пользователь может посмотреть историю переводов. Как сохранить в таблицу дату и время, а также вывести всю таблицу на форму?
4. Если в textbox я ввел цифру то как сделать так, чтобы эта цифра считалась как цифра, как число?
Здесь - код формы, про которую я писал в 1 и 2 пункте:
public FormUser()
        {
            InitializeComponent();
            
        }

        private void Upload_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            Controls.Add(pictureBox1);

            openFileDialog1.ShowDialog();

            Image image = Image.FromFile(openFileDialog1.FileName);
            pictureBox1.Image = image;
        }
        
        private void WatchHistory_Click(object sender, EventArgs e)
        {
            Hide();
            new FormHistory().Show();
        }

        private void MakePayment_Click(object sender, EventArgs e)
        {
            Hide();
            new FormPayment().Show();
        }

        private void Save_Click(object sender, EventArgs e)
        {
            if ((NameField.Text == "") && (SurnameField.Text == "") && (pictureBox1.Image == null) && (LoginField.Text == ""))
            {
                MessageBox.Show("И что мне надо сохранять, если везде пусто?!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            
            SQLiteConnection connect = new SQLiteConnection("Data source = accounts.db");
            connect.Open();
            try
            {
                SQLiteCommand command = new SQLiteCommand($"UPDATE users SET Name = '{NameField.Text}', Surname = '{SurnameField.Text}' WHERE Login = '{LoginField.Text}'", connect);
                command.ExecuteNonQuery();
            }
            finally
            {
                MessageBox.Show($"Изменения сохранены!");
                connect.Close();
            }
        }

Если будут конкретные примеры с кодом то будет здорово)
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
@oleg_ods
1. Тебе нужно сохранять полученное изображение на сервере в какую-то папку, например myapp/storage/images, а в бд писать путь к этому изображению( myapp/storage/images/photo1.jpg)

2. При открытии формы проверяй есть ли в бд какая либо информация о данном пользователе. Если есть, то заполняешь форму, иначе пусто.

3. В SQL есть тип данных date как раз для хранения дат. Как альтернатива можешь использовать unixtime.

4. Пытаться парсить введенное значение. Или использовать NumericUpDown. Или добавить обработчик события KeyPress и в нем проверять введенный символ на то что он является цифрой(char.IsDigit)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы