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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2011, 17:39   #1
ilshat09
Пользователь
 
Регистрация: 10.07.2010
Сообщений: 37
По умолчанию Сравнение двух строковых переменных в C#

Доброго времени суток!!!
У меня возникает проблема при сравнивании друх строковых переменных
т.е. переменные одинаковые но выполняется все время ветка else. Подскажите вчем проблема
ilshat09 вне форума Ответить с цитированием
Старый 27.02.2011, 17:49   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

попробуйте str1.compare(str2)
onewho вне форума Ответить с цитированием
Старый 27.02.2011, 18:01   #3
ilshat09
Пользователь
 
Регистрация: 10.07.2010
Сообщений: 37
По умолчанию

Не работает
Оператора compare нет в C#
а оператор CompareTo ишет что нельзя приобразовать тип int в bool
ilshat09 вне форума Ответить с цитированием
Старый 27.02.2011, 18:09   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

давайте пример кода, иллюстрирующий Ваши слова!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2011, 18:13   #5
ilshat09
Пользователь
 
Регистрация: 10.07.2010
Сообщений: 37
По умолчанию

Код:
private void button1_Click(object sender, EventArgs e)
        {

            string ConnectionString = "Data Source=192.168.0.1;Initial Catalog=mooknb;User ID=sa;password=200792;";
            using (SqlConnection testConnection = new SqlConnection(ConnectionString))
            {
                if ((textBox1.Text != "") && (textBox2.Text != ""))
                {
                string sqls, sqls2;
                string login = Convert.ToString(textBox1.Text);
                int  pas = Convert.ToInt32(textBox2.Text);
            
                sqls = "SELECT login FROM avtoriz WHERE login='"+login+"'";
                sqls2 = "SELECT passwor FROM avtoriz WHERE login='" + login + "'";
                int proverka = 0;
                int proverka2 = 0;
                using (SqlCommand testCommand = new SqlCommand(sqls, testConnection))
                {
                    testCommand.CommandType = CommandType.Text;
                    testConnection.Open();
                    string logins = (string)testCommand.ExecuteScalar();
                    if (logins == login){
                        
                        proverka = 1;
                        testConnection.Close();
                  
                    
                    
                    
                using (SqlCommand testCommand1 = new SqlCommand(sqls2, testConnection))
                {
                    testCommand1.CommandType = CommandType.Text;
                    testConnection.Open();
                    string password = (string)testCommand1.ExecuteScalar();
                    Int32 pass = Convert.ToInt32(password);
                    if (pass == pas) proverka2 = 1; else MessageBox.Show("Вы ввел неверный пароль");

                    testConnection.Close();
                }
                if ((proverka == 1) && (proverka2 ==1))
                {
                 
                    Form2 form22 = new Form2();
                    form22.Show();
                    
                    Close();
                }
                }
                }

               else
               {
                MessageBox.Show("Пользователя с таким логином не существует");
               }

                }
                else
                {
                    MessageBox.Show("Вы не велли логин или пароль");
                }

            }
        }
Ошибка при сравнении логина

Последний раз редактировалось Stilet; 27.02.2011 в 18:50.
ilshat09 вне форума Ответить с цитированием
Старый 27.02.2011, 18:31   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

жуть..
сразу, самый первый запрос
выбрать из таблицы Login где Login = введённому_логину
Зачем?!! Первый запрос не нужен совсем! Выбирайте сразу пароль для введённого логина.

второе. А где проверки - выбрались данные или нет?! Вы не в курсе, что если данных нет - то они и не выберутся и приводить их к типу string - бессмысленно ?

я уже молчу про это строчку:
string login = Convert.ToString(textBox1.Text);
зачем Text приводить к типу стринг, если он и так String ?!

Это так - навскидку...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.02.2011, 18:45   #7
ilshat09
Пользователь
 
Регистрация: 10.07.2010
Сообщений: 37
По умолчанию

первый запрос на проврку пользователя есть ли он в бд или нет
а второй запрос на проверку пароля
А это от безделия string login = Convert.ToString(textBox1.Text);

А как осуществить проверку выбрались ли данные?
ilshat09 вне форума Ответить с цитированием
Старый 27.02.2011, 18:52   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
if (logins == login){
Ставь тут точку прерывания и выясни чему какая переменка равна.

Цитата:
Вы не велли
Может быть "Вы не волли"? ))))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение переменных snikers987 PHP 26 12.02.2011 01:01
Абстракция. Обработка символьных и строковых переменных. articoli Помощь студентам 0 05.12.2010 22:35
Сравнение объектных переменных NomadV Microsoft Office Word 1 09.04.2010 16:44