asp.net Войти Сайт из базы данных - PullRequest
0 голосов
/ 17 декабря 2011

У меня есть сайт с логином из базы данных.

Это мой код:

        protected void SignIn_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Movie;Integrated Security=True");
            con.Open();

            string cmdStr = "select count(*) from Users";

            cmdStr += "where Username='" + UsernameSignIn.Text + "'";
            cmdStr+= "AND Password='"+PasswordSignIn.Text+"'";

            SqlCommand cmd = new SqlCommand(cmdStr, con);

            int i = Convert.ToInt16(cmd.ExecuteScalar());

            if (i == 0)
            {
                ErrorSignIn.Text = "Sorry, Wrong Username or Password";
            }
            else
            {
                Response.Redirect("HomeAfter.aspx");
            }
        }

по какой-то причине я сталкиваюсь с ошибкой:

Неверный синтаксис рядом с '-'

. (для этой строки: int i = Convert.ToInt16(cmd.ExecuteScalar());)

Спасибо

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Интервалов нет. Ваш запрос выглядит так:

выберите количество (*) в Userswhere Имя пользователя = '...' AND Пароль = '...'

Добавить пробелы, например:

string cmdStr = "select count(*) from Users";
cmdStr += " where Username='" + UsernameSignIn.Text + "'";
cmdStr+= " AND Password='"+PasswordSignIn.Text+"'";
1 голос
/ 17 декабря 2011

Помимо того факта, что это особенно грубо как форма аутентификации (вам действительно следует рассмотреть возможность использования встроенного поставщика (ов) членства ASP.NET), вы должны как минимум использовать параметризованные запросы SQL, а не объединение простого текста для создания оператора SQL. Кроме того, я замечаю, что ваше соглашение о входе в систему просто выполняет response.redirect на страницу HomeAfter.aspx, не сохраняя ничего для повторного использования, которое будет указывать на то, что пользователь уже успешно вошел в систему, например, cookie или переменная sesssion.

Есть ли какая-то особая причина для всего этого, или это потому, что вы только начинаете и вам нужно немного учиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...