Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
googlogmob
5 / 5 / 5
Регистрация: 17.12.2013
Сообщений: 200
1

Результат хранимой процедуры

20.04.2016, 23:48. Просмотров 1001. Ответов 4
Метки нет (Все метки)

Есть хранимая процедура на SQL Server, которая принимает два параметра - логин и пароль. и если пара совпадает с записью в базе, то процедура возвращает 1, в противном случае 0

Написал метод для определения факта авторизации пользователя, но
вот эта часть
C#
1
2
      SqlDataReader SqlDataReader = sqlcomm.ExecuteReader();
      if (SqlDataReader.GetString(0) == Convert.ToString(1))
не работает.
Посоветуйте, пожалуйста, как исправить, чтобы выполнилось Response.Redirect("/Main.aspx"); при возврате хранимкой 1?


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        protected void authorization()
        {
            SqlConnection conn = new SqlConnection(@"Data Source=");
            SqlCommand sqlcomm = new SqlCommand("p_authorization_confirmation", conn);
            sqlcomm.CommandType = System.Data.CommandType.StoredProcedure;
            sqlcomm.Parameters.Add("@login", System.Data.SqlDbType.DateTime).Value = txtBx_login.Text;
            sqlcomm.Parameters.Add("@password", System.Data.SqlDbType.DateTime).Value = txtBx_pass.Text;
 
            try
            {
                conn.Open();
                SqlDataReader SqlDataReader = sqlcomm.ExecuteReader();
                if (SqlDataReader.GetString(0) == Convert.ToString(1))
                {
                    Response.Redirect("/Main.aspx");
                }
 
 
                //   sqlcomm.ExecuteNonQuery();
                conn.Close();
            }
            catch (Exception ex) { };
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2016, 23:48
Ответы с готовыми решениями:

Вывести результат хранимой процедуры в DataGridView
Почитал несколько сайтов, но, видимо, я совсем пенек и не понял, как же всё таки в DataGridView...

Оптимизация хранимой процедуры: чтобы все условия обрабатывались, а результат выводился только один
Коллеги, есть вот такая процедура: ALTER PROCEDURE GetAllColumn @InputValue nchar(20),...

Вызов хранимой процедуры
Привет! У меня есть база данных и запрос, написанный на SQL в сишарпе. Таблица из базы данных...

Вызов хранимой процедуры
Как вызвать хранимую процедуру в БД Access через Viasual Studio 2015 Community. Хранимые процедуры:...

Вызов хранимой процедуры в с#
Хочу обновить бд с помощью хранимой процедуры ALTER procedure . @id_TP int, @id_worker int, @DT...

4
Igr_ok
418 / 390 / 185
Регистрация: 04.08.2015
Сообщений: 1,073
21.04.2016, 13:22 2
Цитата Сообщение от googlogmob Посмотреть сообщение
System.Data.SqlDbType.DateTime
Странный тип данных для логина и пароля.
Если не оно, то объясните, что значит ваше "не работает".
0
googlogmob
5 / 5 / 5
Регистрация: 17.12.2013
Сообщений: 200
21.04.2016, 13:29  [ТС] 3
Igr_ok, опечатка, копировал с другого проекта..
Исправил, в проекте та же проблема и осталась - после нажатия на кнопку не происходит переход на другую страницу
Нужно как-то получить результат хранимой процедуры и проверить его на условие

Кликните здесь для просмотра всего текста
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
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            authorization();
        }
 
        protected void authorization()
        {
            SqlConnection conn = new SqlConnection(@"Data Source=");
            SqlCommand sqlcomm = new SqlCommand("p_authorization_confirmation", conn);
            sqlcomm.CommandType = System.Data.CommandType.StoredProcedure;
            sqlcomm.Parameters.Add("@login", System.Data.SqlDbType.Text).Value = txtBx_login.Text;
            sqlcomm.Parameters.Add("@password", System.Data.SqlDbType.Text).Value = txtBx_pass.Text;
 
            try
            {
                conn.Open();
                SqlDataReader SqlDataReader = sqlcomm.ExecuteReader();
                if (SqlDataReader.GetString(0) == Convert.ToString(1))
                {
                    Response.Redirect("/Main.aspx");
                }
 
 
                //   sqlcomm.ExecuteNonQuery();
                conn.Close();
            }
            catch (Exception ex) { };
        }
0
Igr_ok
418 / 390 / 185
Регистрация: 04.08.2015
Сообщений: 1,073
21.04.2016, 14:25 4
https://msdn.microsoft.com/ru-ru/lib...vs.100%29.aspx

В вашем коде не хватает
C#
1
while (reader.Read())
0
googlogmob
5 / 5 / 5
Регистрация: 17.12.2013
Сообщений: 200
21.04.2016, 19:36  [ТС] 5
Было решено таким образом:

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
  protected int confirmation(string login, string password)
        {
            Int32 authstatus = 0;
            using (SqlConnection conn = new SqlConnection(@"Data Source="))
            using (SqlCommand cmd = new SqlCommand("p_authorization_confirmation", conn))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("@login", SqlDbType.Text).Value = login;
                cmd.Parameters.Add("@password", SqlDbType.Text).Value = password;
 
                var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
                returnParameter.Direction = ParameterDirection.ReturnValue;
 
                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                    authstatus = (Int32)cmd.ExecuteScalar();
                    conn.Close();
                }
                catch (Exception ex) { }
            }
 
            return (int)authstatus;
        }
0
21.04.2016, 19:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2016, 19:36

Создание хранимой процедуры в C#
Есть БД в SQL. Интерфейс создается на C#. Как создать такую хранимую процедуру: CREATE PROC...

Создание хранимой процедуры
Здравствуйте, помогите пожалуйста с программой. Есть БД техникума и нужно создать приложение...

Вызов хранимой процедуры
есть хранимая процедура. Надо ее вызвать и что бы она заменила один столбец в БД. если что проект...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru