Во-первых, я должен поздравить вас с желанием использовать параметры для вашего SQL.Многие новички не делают этого, что приводит к ужасным атакам SQL-инъекций.
Во-вторых, вы действительно должны хэшировать свои пароли.Никогда не храните простые текстовые пароли.Поскольку вопрос о том, как именно хешировать пароли, вызывает много споров и усложняет код, сейчас я отложу это в сторону.
Теперь перейдем к актуальному вопросу.Во-первых, в коде есть несколько ошибок.Во-первых, параметры создаются неправильно, то, что вы должны иметь, должно быть примерно таким:
using(SqlConnection conn = new SqlConnection("connection string"))
{
SqlCommand cmd = new SqlCommand("Select * FROM Register where username=@username and password=@password", conn);
cmd.Parameters.AddWithValue("@username", textbox1User.Text);
cmd.Parameters.AddWithValue("@password", textbox2User.Text);
}
(подробнее об использовании см. http://msdn.microsoft.com/en-us/library/yh598w02.aspx. Это хорошая привычка, чтобы попасть в)
После этого, чтобы легко проверить логин, вы можете сделать что-то подобное для вашей SqlCommand:
SELECT COUNT(*) FROM Register WHERE username=@username AND password=@password
И затем добавить это в свой код, после добавления параметров, ноперед закрывающей скобкой на using
:
conn.Open();
int result = Convert.ToInt32(cmd.ExecuteScalar());
result
будет 0, если пользователь не был найден, или 1, если был найден ровно один пользователь (Если у вас может быть несколько пользователей с одним и тем же пользователемимя, есть и другие проблемы, выходящие за рамки этой области).
Теперь, что касается принудительного контроля доступа, взгляните на http://support.microsoft.com/kb/301240 Термины, которые вас интересуют, это «Проверка подлинности с помощью форм» и «web.config авторизация ".Обратите внимание, что примеры кода в приведенной ссылке немного устарели, но в целом показывают, как выполнить то, что вы просите.
Это должно помочь вам начать правильный путь.