С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
1

Ошибка при авторизации пользователя

12.08.2013, 09:01. Показов 1500. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!!! Делаю форму авторизации по логину и паролю из MSSQL(textbox). Подключение к базе через DataSet. В коде подсвечивает строки где использую Row
Подскажите где наступил на грабли.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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.Data.SqlClient;
using taxi.Common;
 
namespace taxi
{
    public partial class Form1 : Form
    {
        private DataTable partners;
 
        public Form1()
        {
          InitializeComponent();
            DataTable tempTable = new DAL.DataAccessLayer().AllLogin;
            this.partners = new DataView(tempTable,
                null, "login", DataViewRowState.OriginalRows).ToTable();
           this.loginbox.DataSource = this.partners;
            
            
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Вы уверены, что хотите выйти?", Application.ProductName, MessageBoxButtons.YesNo) != DialogResult.No)
                Application.Exit();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            if (
                (this.partners.Rows(this.loginbox.SelectedIndex)("login").ToString() == this.loginbox.SelectedItem.ToString())
            &&
                (this.partners.Rows(this.loginbox.SelectedIndex)("pass").ToString() == this.textBox2.SelectedText.Trim())
            )
            {
                Klients klient = new Klients(this.partners.Rows(this.loginbox.SelectedIndex)("id").ToString(),
                    this.partners.Rows(this.loginbox.SelectedIndex)("login").ToString(),
                    this.partners.Rows(this.loginbox.SelectedIndex)("pass").ToString());
                //Form2 form2 = new Form2(klients);
                return;
            }
                // Form1.ActiveForm.Hide();
                // Form2 frm = new Form2();
                // frm.Show();
                // Close();
                MessageBox.Show("Не верный логин или параль. Повторите попытку!!!");
        }
         
               
 
         private void Form1_Load(object sender, EventArgs e)
         {
             // TODO: данная строка кода позволяет загрузить данные в таблицу "taxiclientDataSet.Partnerts". При необходимости она может быть перемещена или удалена.
             this.partnertsTableAdapter.Fill(this.taxiclientDataSet.Partnerts);
             // TODO: данная строка кода позволяет загрузить данные в таблицу "taxiclientDataSet1.Partnerts". При необходимости она может быть перемещена или удалена.
             this.partnertsTableAdapter.Fill(this.taxiclientDataSet.Partnerts);
 
         }
 
         
 
         private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
         {
 
         }
 
         private void textBox2_TextChanged(object sender, EventArgs e)
         {
             (sender as TextBox).Text = string.Empty;
         }
 
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2013, 09:01
Ответы с готовыми решениями:

Хранение переменных при авторизации пользователя
Здравствуйте, имеется форма авторизации, вводятся логин\пароль, из БД MS SQL выбирается...

Ошибка при авторизации в БД
Постараюсь раскрыть всю суть, в C# я новичок, ошибка заключается в Базе данных с Access. Считываю...

Ошибка авторизации при попытке доступа к БД
Добрый день, у базы данных стоит проверка подлинности: "Проверка подлинности Windows" и при попытке...

Реализация авторизации пользователя
Добрый день! У меня есть база данных в Access c таблицей с логинами и паролями Naladchik. На...

11
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
13.08.2013, 04:31 2
Цитата Сообщение от damonxx Посмотреть сообщение
В коде подсвечивает строки где использую Row
Подскажите где наступил на грабли.
Visual Studio просто подсвечивает? Не объясняет, почему она это делает? Дело в том, что Rows - это не метод, а свойство. То есть, применение к нему круглых скобок противопоказано. Судя по всему, вы пытаетесь использовать индексатор. В таком случае обращение к ячейки таблицы должно выглядеть так:
C#
1
partners.Rows[loginbox.SelectedIndex]["login"]
1
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
14.08.2013, 03:58  [ТС] 3
Цитата Сообщение от kodv Посмотреть сообщение
Visual Studio просто подсвечивает? Не объясняет, почему она это делает? Дело в том, что Rows - это не метод, а свойство. То есть, применение к нему круглых скобок противопоказано. Судя по всему, вы пытаетесь использовать индексатор. В таком случае обращение к ячейки таблицы должно выглядеть так:
C#
1
partners.Rows[loginbox.SelectedIndex]["login"]
Спасибо, действительно перепутал вместо квадратных скобок поставил круглые.

Сейчас возникла проблема при запуске отладки программы
код
C#
1
2
3
4
5
6
7
8
9
10
11
private SqlConnection SqlConnection
 
        {
            get
            {
                if (this.SqlConnection == null)
                    this.sqlConnection = new SqlConnection(this.ConnectionString);
 
                return this.sqlConnection;
            }
        }
Ошибка: Необработанное исключение типа "System.StackOverflowException" в test.exe. и указывает на
C#
1
 if (this.SqlConnection == null)
Подскажите где тут наступил на грабли?
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.08.2013, 07:26 4
Думаю, должно быть так:
C#
1
if (this.sqlConnection == null)
1
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
14.08.2013, 11:00  [ТС] 5
Цитата Сообщение от kodv Посмотреть сообщение
Думаю, должно быть так:
C#
1
if (this.sqlConnection == null)
Пасибки.

Еще вопрос:
есть код проверки логина и пароля
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 private void button1_Click(object sender, EventArgs e)
        {
            if(
                (this.m_allLogin.Rows[this.listBox1.SelectedIndex]["login"].ToString() ==this.listBox1.Text.Trim())
            &&
                (this.m_allLogin.Rows[this.listBox1.SelectedIndex]["pass"].ToString() == this.textBox2.Text.Trim())
            )
            {
                Form2 form2 = new Form2();
                return;
            }
            MessageBox.Show("Неверный логин или пароль. Проверьте правильность ввода!!!");
            }
все работает, как сделать вместо листбокса текстбокс. Как должен выглядить идентификатор у TextBox'a?
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.08.2013, 11:06 6
Цитата Сообщение от damonxx Посмотреть сообщение
как сделать вместо листбокса текстбокс. Как должен выглядить идентификатор у TextBox'a?
Не понимаю, что вы хотите сделать. Более подброно, пожалуйста: какой ListBox, на какой TextBox, что за идентификатор у TextBox'а?
0
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
14.08.2013, 11:10  [ТС] 7
Цитата Сообщение от kodv Посмотреть сообщение
Не понимаю, что вы хотите сделать. Более подброно, пожалуйста: какой ListBox, на какой TextBox, что за идентификатор у TextBox'а?
Сейчас поле для логина это listbox1
C#
1
(this.m_allLogin.Rows[this.listBox1.SelectedIndex]["login"].ToString() ==this.listBox1.Text.Trim())
я хочу чтобы вместо него был textbox
C#
1
(this.m_allLogin.Rows[this.textbox]["login"].ToString() ==this.listBox1.Text.Trim())
а вот как написать код после this.textbox что бы была проверка из mssql
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.08.2013, 11:33 8
Если у вас таблица m_allLogin содержит первичные ключ в виде логина (по крайней мере так должно быть), то можно сделать так:
C#
1
2
if(m_allLogin.Rows.Find(textBox1.Text.Trim()) != null && m_allLogin.Rows.Find(textBox1.Text.Trim())["pass"].ToString() == textBox2.Text.Trim())
    DoOnAccessValidate();
Если по какой-либо причине первичный ключ у вас отсутствует, то прийдется делать так:
C#
1
2
3
foreach(DataRow dr in m_allLogin.Select("Login = " + textBox1.Text.Trim())
    if(dr["Pass"].ToString() == textBox2.Text.Trim())
        DoOnAccessValidate();
Или полным перебором:
C#
1
2
3
foreach(DataRow dr in m_allLogin.Rows)
    if(dr["Login"].ToString() == textBox1.Text.Trim() && dr["Pass"].ToString() == textBox2.Text.Trim())
        DoOnAccessValidate();
0
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
14.08.2013, 12:09  [ТС] 9
Цитата Сообщение от kodv Посмотреть сообщение
Если у вас таблица m_allLogin содержит первичные ключ в виде логина (по крайней мере так должно быть), то можно сделать так:
C#
1
2
if(m_allLogin.Rows.Find(textBox1.Text.Trim()) != null && m_allLogin.Rows.Find(textBox1.Text.Trim())["pass"].ToString() == textBox2.Text.Trim())
    DoOnAccessValidate();
Если по какой-либо причине первичный ключ у вас отсутствует, то прийдется делать так:
C#
1
2
3
foreach(DataRow dr in m_allLogin.Select("Login = " + textBox1.Text.Trim())
    if(dr["Pass"].ToString() == textBox2.Text.Trim())
        DoOnAccessValidate();
Или полным перебором:
C#
1
2
3
foreach(DataRow dr in m_allLogin.Rows)
    if(dr["Login"].ToString() == textBox1.Text.Trim() && dr["Pass"].ToString() == textBox2.Text.Trim())
        DoOnAccessValidate();
Частично заработало с
C#
1
2
foreach (DataRow dr in m_allLogin.Rows)
                if (dr["login"].ToString() == textBox1.Text.Trim() && dr["pass"].ToString() == textBox2.Text.Trim())
а что такое
C#
1
DoOnAccessValidate();
и как его собрать, а то у меня на него Visual ругается.

и при проверке логина и пасса постоянно ругается что логин или пасс не верны...
0
1449 / 1121 / 347
Регистрация: 11.04.2011
Сообщений: 2,621
14.08.2013, 12:18 10
Цитата Сообщение от damonxx Посмотреть сообщение
а что такое Код C#1
DoOnAccessValidate();
Я так обозначал действия, которые должны происходить при удачном прохождении проверки.
Цитата Сообщение от damonxx Посмотреть сообщение
и при проверке логина и пасса постоянно ругается что логин или пасс не верны...
Потому что нельзя бездумно добавлять блок else. Допустим, в третьем варианте у вас будут перебираться все пары логин-пароль. То есть, если туда дописать else, то для каждого логина, который не проходит проверку, выполнится действие, находящееся в блоке else.
1
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
14.08.2013, 12:33  [ТС] 11
ну так логин и пасс я ввожу то верный....
вот какой сейчас код
C#
1
2
3
4
5
6
7
8
9
10
11
 private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataRow dr in m_allLogin.Rows)
                if (dr["login"].ToString() == textBox1.Text.Trim() && dr["pass"].ToString() == textBox2.Text.Trim())
 
                {
                    Form2 form2 = new Form2();
                    return;
                }
                 MessageBox.Show("Неверный логин или пароль. Проверьте правильность ввода!!!");
            }
можешь подсказать как правильно сделать?
0
14 / 14 / 8
Регистрация: 12.08.2013
Сообщений: 202
16.08.2013, 14:00  [ТС] 12
Вопрос снят, разобрался.
Спасибо kodv.
0
16.08.2013, 14:00
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.08.2013, 14:00
Помогаю со студенческими работами здесь

Неизвестная ошибка (0x80005000) при получении групп пользователя в AD
день добрый! объясните, пожалуйста, чайнику как побороть ошибку (неизвестная ошибка (0x80005000))...

Ошибка при авторизации через vkNet
Обновлял до старых версий ,до новых и ни чего . Ошибка :VkNet.Exception.VkApiException: "Form...

Удалить пользователя из формы авторизации
Помогите пожалуйста не могу удалить пользователя из формы авторизации вот исходник Вот так...

Ошибка при выполнении кода VBA при авторизации пользователя
Добрый день! Для создания авторизации пользователей в базе взяла готовый код VBA и попробовала...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Что такое HCL Notes и как с ним работать
InfoMaster 10.01.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) представляет собой комплексную платформу для совместной работы и обмена информацией в корпоративной среде. Это многофункциональное решение,. . .
Как работать с Git из Windows и Visual Studio
InfoMaster 10.01.2025
Работа с Git в Windows Работа с Git в операционной системе Windows может быть осуществлена с помощью различных инструментов, каждый из которых обладает своими уникальными возможностями и. . .
Аналог оператора switch case в Python
InfoMaster 10.01.2025
Оператор switch case используется в программировании для выбора одного из нескольких вариантов исполнения кода. Однако в языке Python этот оператор отсутствует. Понимание аналогов switch case в. . .
Отличия абстрактного класса от интерфейса
InfoMaster 10.01.2025
В современной разработке программного обеспечения существуют два основных механизма реализации абстракции: абстрактные классы и интерфейсы. Эти инструменты, хотя и схожи в своей основной цели -. . .
Как работать в Git
InfoMaster 10.01.2025
Git — это одна из наиболее популярных систем контроля версий, которая активно используется разработчиками по всему миру. Она позволяет эффективно управлять изменениями в коде, координировать работу. . .
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru