@a63826ndrew
Студент, новичок в Python

Как исправить ошибку, я ее не вижу?

Здравствуйте, нужна помощь, т.к. во время работы программы вылазит ошибка, и я не знаю как ее исправить
Надеюсь вы мне необразованному поможете
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Data.Common;
using System.Data.SQLite;
using System.Security.Cryptography;

namespace BasicsOfProgramming
{
    public partial class Registerform1 : Form
    {
        private SQLiteConnection DB;       public Registerform1()
        {
            InitializeComponent();

            RegUserLoginField.Text = "Введите здесь свой логин";
            RegUserLoginField.ForeColor = Color.Gray;
            RegUserPassField.Text = "Введите здесь свой пароль";
            RegUserPassField.ForeColor = Color.Gray;
            RegUserPassCheckField.Text = "Введите пароль еще раз";
            RegUserPassCheckField.ForeColor = Color.Gray;
        }



        private void RegUserLoginField_Enter(object sender, EventArgs e)
        {
            if (RegUserLoginField.Text == "Введите здесь свой логин")
            {
                RegUserLoginField.Text = "";
                RegUserLoginField.ForeColor = Color.Black;
            }
        }

        private void RegUserLoginField_Leave(object sender, EventArgs e)
        {
            if (RegUserLoginField.Text == "")
            {
                RegUserLoginField.Text = "Введите здесь свой логин";
                RegUserLoginField.ForeColor = Color.Gray;
            }
        }

        private void RegUserPassField_Enter(object sender, EventArgs e)
        {
            if (RegUserPassField.Text == "Введите здесь свой пароль")
            {
                RegUserPassField.Text = "";
                RegUserPassField.ForeColor = Color.Black;
            }
        }

        private void RegUserPassField_Leave(object sender, EventArgs e)
        {
            if (RegUserPassField.Text == "")
            {
                RegUserPassField.Text = "Введите здесь свой пароль";
                RegUserPassField.ForeColor = Color.Gray;
            }
        }

        private void RegUserPassCheckField_Enter(object sender, EventArgs e)
        {
            if (RegUserPassCheckField.Text == "Введите пароль еще раз")
            {
                RegUserPassCheckField.Text = "";
                RegUserPassCheckField.ForeColor = Color.Black;
            }
        }

        private void RegUserPassCheckField_Leave(object sender, EventArgs e)
        {
            if (RegUserPassCheckField.Text == "")
            {
                RegUserPassCheckField.Text = "Введите пароль еще раз";
                RegUserPassCheckField.ForeColor = Color.Gray;
            }

        }

        private void RegisterButton_Click(object sender, EventArgs e)
        {
            SQLiteConnection data;
            data = new SQLiteConnection(@"Data Source=database.db; Version=3;");
            data.Open();
            MD5 md5 = new MD5CryptoServiceProvider();
            string hash = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes((RegUserLoginField.Text + RegUserPassField.Text)))).Replace("-", String.Empty);
            SQLiteCommand checkUser = new SQLiteCommand("SELECT id FROM database WHERE Логин = '" + RegUserLoginField.Text + "'", data);
            SQLiteCommand addUser = new SQLiteCommand("INSERT INTO 'users' ('username', 'hash') VALUES ('" + RegUserLoginField.Text + "','" + hash + "');", data);
            SQLiteDataReader reader = checkUser.ExecuteReader();
            if (!reader.HasRows)
            {
                if (RegUserPassField.Text != RegUserPassCheckField.Text)
                {
                    MessageBox.Show("Пароли не совпадают!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    RegUserLoginField.Text = "";
                    RegUserPassField.Text = "";
                    RegUserPassCheckField.Text = "";
                }
                else
                {
                    addUser.ExecuteNonQuery();
                    data.Close();
                    MessageBox.Show("Вы успешно зарегистрировались!", "ОК", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    RegUserLoginField.Text = "";
                    RegUserPassField.Text = "";
                    RegUserPassCheckField.Text = "";
                    this.Hide();
                    new Loginform1().Show();
                }

            }
            else
            {
                RegUserLoginField.Text = "";
                RegUserPassField.Text = "";
                RegUserPassCheckField.Text = "";
                MessageBox.Show("Пользователь с таким именем уже существует!", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                data.Close();
            }

        }

        private void RegisterForm_Load(object sender, EventArgs e)
        {
            DB = new SQLiteConnection("Data Sourse = Base.db; Version = 3");
        }
        
    }

   
   
}

5e0242a97d6b2588491492.jpeg
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
@Av-IT
Разработчик и админ SQL, консультант
Привет, Андрей

А у тебя таблица database в БД точно есть? Она в точности именно так называется?
Лучше это название скопировать из админки БД, чтобы избежать опечаток таких как русская 'a' вместо латинской...

И попробуй взять в апострофы
SELECT id FROM 'database' WHERE ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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