Как добавить аутентификацию SQL в приложение C # формы? - PullRequest
0 голосов
/ 02 марта 2012

Мне нужно иметь возможность проверить имя пользователя и пароль на сервере sql, и мне нужен код для приложения форм C #.

У меня есть два текстовых поля (1 пользователь и 1 проход), а затемУ меня есть кнопка входа в систему.

            SqlConnection UGIcon = new SqlConnection();
        UGIcon.ConnectionString = "Data Source=HP-PC//localhost;Initial Catalog=UGI;Integrated Security=True";
        UGIcon.Open();

        string userText = textBox11.Text;
        string passText = textBox12.Text;

        SqlCommand cmd = new SqlCommand("SELECT stUsername,stPassword FROM LoginDetails WHERE stUsername='" + textBox11.Text + "' and stPassword='" + textBox12.Text + "'", UGIcon);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        da.Fill(dt);

        if ( dt.Rows.Count > 0)
        {
            MessageBox.Show("Login Success!!");
            cmd = new SqlCommand("SELECT stRole from LoginDetails where stUsername=@stUsername", UGIcon);
            cmd.Parameters.AddWithValue("@stUsername",userText);
            string role = cmd.ExecuteScalar().ToString();
            MessageBox.Show(role);
            UGIcon.Close();
        }
        else 
        {
            MessageBox.Show("Access Denied!!");
            UGIcon.Close();
        }

Ответы [ 2 ]

1 голос
/ 02 марта 2012

Я настоящий сторонник использования выражений "с помощью".Вы также можете сохранить второй запрос, запросив переменную stRole в исходном запросе.Используемые блоки автоматически удаляют объекты, поэтому, когда выполнение покидает эту область, объекты автоматически очищаются.

using (SqlConnection UGIcon = new SqlConnection("Data Source=localhost\\sqlexpress;Initial Catalog=UGI;Integrated Security=True"))
        {
            UGIcon.Open();

            string userText = textBox11.Text;
            string passText = textBox12.Text;

            SqlCommand cmd = new SqlCommand("SELECT stUsername,stPassword, stRole FROM LoginDetails WHERE stUsername='" + userText + "' and stPassword='" + passText + "'", UGIcon);

            using (SqlDataReader rdr = cmd.ExecuteReader())
            {
                if (rdr.HasRows)
                {
                    while (rdr.Read())
                    {
                        string role = rdr["stRole"].ToString();
                        MessageBox.Show(role);
                    }
                }
                else
                {
                    MessageBox.Show("Access Denied!!");
                }
            }
        }  
0 голосов
/ 02 марта 2012

Пожалуйста, проверьте этот код

SqlConnection thisConnection = new
        SqlConnection(@"Server=(local)\sqlexpress;Integrated Security=True;" +
                  "Database=northwind");
        thisConnection.Open();
        SqlCommand thisCommand = thisConnection.CreateCommand();
        thisCommand.CommandText = "Select count(*) from UserDetails
WHere UserName = "+txtUsername.text.trim().toLower() + " and Password = " +txtPassword.text.trim().toLower();
        Object countResult = thisCommand.ExecuteScalar();
        Console.WriteLine("Count of Customers = {0}", countResult);

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