Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
4 / 4 / 2
Регистрация: 26.10.2014
Сообщений: 138

Почему происходит удаление данных из БД?

19.05.2022, 15:21. Показов 711. Ответов 8

Студворк — интернет-сервис помощи студентам
Такая проблема: при восстановлении доступа не происходит замена в sql файле с паролями старого пароля на новый, а просто удаляются все данные. Как можно решить эту проблему?
Вот часть кода на восстановление доступа:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
login.Text = str;
            password.Text = str11;
 
            string[] Line = File.ReadAllLines("login.sql");
            string Lin111 = File.ReadAllText("password.sql");
            richTextBox1.Text = Lin111;
 
            if (Line.Contains(login.Text))
            {
                for (int i = 0; i < Line.Length; i++)
                {
                    if (login.Text == Line[i])
                    {
                        string kill = File.ReadLines("password.sql").Skip(i).FirstOrDefault().ToString();
                        string a = kill;
                        int index = richTextBox1.Text.IndexOf(a);
                        richTextBox1.SelectionStart = index;
                        richTextBox1.SelectionLength = a.Length;
                        richTextBox1.SelectedText = password.Text;
                        richTextBox2.Text = richTextBox1.Text;
                        richTextBox2.SaveFile(@"password.sql", RichTextBoxStreamType.PlainText);
                    }
                }
 
                try
                {
                   File.Delete(@"Indicator.sql");
                   File.Create(@"Indicator.sql");
                }
                catch
                {
 
                }
                login.Clear();
                name.Clear();
                password.Clear();
                password2.Clear();
                passwordConfirm.Clear();
                passwordConfirm2.Clear();
                captcha.Clear();
                surname.Clear();
                richTextBox1.Clear();
                richTextBox2.Clear();
                MessageBox.Show("Пароль успешно восстановлен!", "Восстановление доступа");
                Hide();
                Form2 f = new Form2();
                f.ShowDialog();
                Close();
            }
А вот часть кода на смену пароля, тут проблем не возникает, но может можно как-то использовать этот код для восстановления доступа, я пытался, ничего не получилось. + для наглядности добавляю скрины с двумя этими формами:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
newPassword.Text = str11;
 
                int index = richTextBox1.Text.IndexOf(oldPassword.Text);  
                string str123 = richTextBox1.Text.Substring(0, index); 
                string str232 = richTextBox1.Text.Substring((index + oldPassword.TextLength), (richTextBox1.TextLength - (index + oldPassword.TextLength))); 
                string result = str123 + newPassword.Text + str232; 
                richTextBox1.Clear(); 
                richTextBox1.AppendText(result); 
                richTextBox1.SaveFile(@"password.sql", RichTextBoxStreamType.PlainText);
 
                try
                {
                    File.Delete(@"Indicator.sql");
                    File.Create(@"Indicator.sql");
                }
                catch
                {
 
                }
                oldPassword.Clear();
                oldPassword2.Clear();
                newPassword.Clear();
                newPassword2.Clear();
                passwordConfirm.Clear();
                passwordConfirm2.Clear();
                captcha.Clear();
                richTextBox1.Clear();
                MessageBox.Show("Пароль успешно сменен!", "Смена пароля");
                Hide();
                Form2 f = new Form2();
                f.ShowDialog();
                Close();
Миниатюры
Почему происходит удаление данных из БД?   Почему происходит удаление данных из БД?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2022, 15:21
Ответы с готовыми решениями:

Почему не происходит удаление?
Написал код на удаление поля &quot;name&quot; после нажатия на кнопку выдает что все успешно удалено, но записи в БД остались, как быть? Вот код ...

Почему не происходит удаление из списка ?
Добрый день! Вопрос ArrayList&lt;Pair&lt;String, String&gt;&gt; clonedWords = new ArrayList&lt;&gt;(LexicalAnalizer.lex.words); ...

Удаление информации из файлов .mb: почему не происходит?
У меня в таблице хранятся фотографии в blob-поле, при добавлении фотографии в таблицу создается в той же папке файл &lt;table name&gt;.mb...

8
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
19.05.2022, 15:48
daniel_kobica,
а какую структуру имеют файлы *.sql?
почему логин и пароль разделены на разные файлы?
как форма смена пароля без имени пользователя работает?
что будет, по-Вашему, если у разных пользователей будет одинаковый пароль?
код выглядит стрёмно, если честно.
0
4 / 4 / 2
Регистрация: 26.10.2014
Сообщений: 138
19.05.2022, 19:48  [ТС]
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
код выглядит стрёмно, если честно
Да, это старый проект, но мне срочно нужно его использовать.
да, тут используются 2 файла под лог и пасс, то есть каждой строчке в логине соответствует строчка в файле с паролем (Да туповато, но у меня выхода нет, курсач сдавать скоро надо).
Знаю, что если будет 2 одинаковых пароля, они оба обновятся, поэтому я хочу из этих двух разделов (Восстановление доступа и Изменение пароля) сделать один, я пробовал самостоятельно, но возникает проблема с удалением всех паролей из файла. Буду очень благодарен, если поможете разобраться
0
 Аватар для Andrey-MSK
3308 / 2196 / 386
Регистрация: 14.08.2018
Сообщений: 7,388
Записей в блоге: 4
20.05.2022, 09:27
daniel_kobica, что в файлах *.sql?
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
20.05.2022, 09:28
daniel_kobica, так какой вид имеет файл password.sql, Вы так и не ответили?
это обычный текстовый файл, только с измененным в ручную расширением?
Вам придется прочитать весь файл, загнать его в массив или список (не суть), потом в массиве найти этот пароль, подменить на новый, и перезаписать файл новым массим
0
4 / 4 / 2
Регистрация: 26.10.2014
Сообщений: 138
20.05.2022, 10:14  [ТС]
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
это обычный текстовый файл, только с измененным в ручную расширением?
Да, это обычный текстовый файл, который переименован под .sql

Добавлено через 4 минуты
Цитата Сообщение от Andrey-MSK Посмотреть сообщение
что в файлах *.sql?
В файлах находятся логин и пароль, который имеют свою шифровку
Вот часть шифровки английского алфавита:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
for (int i = 0; i < str.Length; ++i)
                            {
                                char[] hifrovka = str.ToCharArray();
 
                                if (hifrovka[i] == 'A')
                                {
                                    str = str.Replace("A", "!");
                                }
                                else if (hifrovka[i] == 'B')
                                {
                                    str = str.Replace("B", "@");
                                }
                                else if (hifrovka[i] == 'C')
                                {
                                    str = str.Replace("C", "#");
                                }
                                else if (hifrovka[i] == 'D')
                                {
                                    str = str.Replace("D", "$");
                                }
                            }
0
Эксперт .NET
 Аватар для Usaga
14071 / 9289 / 1346
Регистрация: 21.01.2016
Сообщений: 34,850
20.05.2022, 10:16
Цитата Сообщение от daniel_kobica Посмотреть сообщение
Вот часть шифровки английского алфавита:
Ох, жесть-то какая)
0
 Аватар для Andrey-MSK
3308 / 2196 / 386
Регистрация: 14.08.2018
Сообщений: 7,388
Записей в блоге: 4
20.05.2022, 10:18
Цитата Сообщение от daniel_kobica Посмотреть сообщение
В файлах находятся логин и пароль, который имеют свою шифровку
А SQLite чего не используете? Локальная БД со всеми нужными фишками...
И доступ к ней проще (ADO), и манипулирование данными вообще вопросов не вызывает...

И пароли хранят как хэш, а не как что-то зашифрованное...
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
20.05.2022, 10:50
daniel_kobica,
1. добавьте новый класс (это будет на замену Вашему шифрованию)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    public static class Decrypt
    {
        private const int KEY = 102;
 
        public static string DecryptParam(string CryptParam)
        {
            byte[] Decrypt = Convert.FromBase64String(CryptParam);
 
            for (int i = 0; i < Decrypt.Length; i++)
            {
                Decrypt[i] = (byte)(Decrypt[i] ^ KEY);
            }
            string DecryptParam = Encoding.UTF8.GetString(Decrypt);
 
            return DecryptParam;
        }
 
        public static string EncryptParam(string Encrypt)
        {
            byte[] EncryptData = Encoding.UTF8.GetBytes(Encrypt);
 
            for (int i = 0; i < EncryptData.Length; i++)
            {
                EncryptData[i] = (byte)(EncryptData[i] ^ KEY);
            }
            string EncryptParam = Convert.ToBase64String(EncryptData);
 
            return EncryptParam;
        }
    }
2. потом удалите старый файл паролей. вытяните на форму авторизации временную кнопку и добавьте туда код. запустите программу и нажмите на кнопку, чтоб создался новый файл паролей
C#
1
2
3
4
5
6
7
using (StreamWriter writer = new StreamWriter("password.sql", true))
{
    for (int i = 1; i <= 3; i++)
    {
        writer.WriteLine($"{Decrypt.EncryptParam($"пароль{i}")}");
    }
}
там будут храниться зашифрованные значения паролей. после этого кнопку можно удалить.

3. замените весь свой код из кнопки "восстановить пароль" на это
C#
1
File.WriteAllLines("password.sql", File.ReadAllLines("password.sql").Select(s => Decrypt.DecryptParam(s) == oldPass ? Decrypt.EncryptParam(newPass) : s));
Где переменные oldPass - это текстовое поле старого пароля (какое там у Вас, не знаю), newPass - соответственно, нового.

вот и все восстановление пароля. дополнительные проверки уже сами напишите, что поле "повторить пароль" должно совпадать с полем "новый пароль", и что код с картинки совпадает со значением.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.05.2022, 10:50
Помогаю со студенческими работами здесь

Почему не происходит удаление записи ( AJAX )?
Пытаюсь удалить запись из базы данных и скрыть элемент с помощью AJAX , но почему то удаление не происходит . На странице выводятся...

Не могу понять почему происходит удаление записей
При выполнении изменений данных в выбранной записи, удаляются записи ниже перечисленные выбранной записи. Помогите кто чем может... ...

Почему не происходит удаления из базы данных?
в чем я допустил ошибку подскажите, почему не происходит удаления из базы данных? $data = date('d.m.Y H:i'); // дата системная ...

Почему в следующей форме не происходит отправка данных?
Почему в следующей форме не происходит отправка данных (т.е. появление окна предупреждения с текстом Данные приняты)? &lt;FORM...

Не понимаю, почему на Free Pascal не происходит вывода данных
Задание: описать процедуру sdv(s,k), которая преобразует шкалу s, циклически сдвигая ее элементы на k позиций влево, где k - параметр типа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru