ExecuteNonQuery() всегда возвращает -1 ⇐ C#
ExecuteNonQuery() всегда возвращает -1
Я создаю приложение для входа в систему с помощью C# и SQL Server.
Что делает моя программа: она проверяет, можно ли найти данное имя пользователя и пароль в базе данных.
Если его можно найти, ExecuteNonQuery() должен вернуть 1 (найдена 1 строка).
Если комбинация не существует, ExecuteNonQuery() должен вернуть что-то другое.
Но в моем случае всякий раз, когда я использую хорошую или неправильную комбинацию, она всегда возвращает -1... как мне это исправить?
Я знаю, что по этому же вопросу уже есть несколько сообщений, но он до сих пор не исправлен...
Кроме того, в чем разница между ExecuteNonQuery() и ExecuteScalar()?
Это отправляемый запрос:
private void btn_loginvolgende_Click(отправитель объекта, EventArgs e) { gebruiker.Gebruikersnaam = Convert.ToString(tb_gebruikersnaamlogin.Text); gebruiker.Wachtwoord = Convert.ToString(tb_wachtwoordlogin.Text); gebruiker.Achternaam = "а"; gebruiker.Geslacht = "а"; gebruiker.Geslacht = "а"; gebruiker.Huidiggewicht = 1; gebruiker.Streefgewicht = 1; gebruiker.Leeftijd = 1; gebruiker.Naam = "а"; db.QueryToDatabase("Выберите количество (*) из Gebruiker, где Wachtwoord = @Wachtwoord И Gebruikersnaam = @Gebruikersnaam;", gebruiker); Thread.Sleep(500); если (db.Success == false) { MessageBox.Show("Войти в систему!"); } иначе, если (db.Success == true) { MessageBox.Show("Вы достигли успеха в журнале"); } } а это мой класс:
public void QueryToDatabase(строка CommandText, Gebruikerklasse gebruiker) { // новое соединение, созданное // выполнение запроса по 'buttonclick' и возвращение к нему // als ExecuteNonQuery не может быть использовано в качестве er iets fout gegaan. Dmv een bool moet hij dan een bericht tonen используя (SqlConnection conn = новый SqlConnection(connectionString)) используя (SqlCommand cmd = новый SqlCommand(commandText, conn)) { конн.Открыть(); cmd.Parameters.AddWithValue("@Naam", gebruiker.Naam); cmd.Parameters.AddWithValue("@Achternaam", gebruiker.Achternaam); cmd.Parameters.AddWithValue("@Leeftijd", gebruiker.Leeftijd); cmd.Parameters.AddWithValue("@Geslacht", gebruiker.Geslacht); cmd.Parameters.AddWithValue("@Huidiggewicht", gebruiker.Huidiggewicht); cmd.Parameters.AddWithValue("@Streefgewicht", gebruiker.Streefgewicht); cmd.Parameters.AddWithValue("@Gebruikersnaam", gebruiker.Gebruikersnaam); cmd.Parameters.AddWithValue("@Wachtwoord", gebruiker.Wachtwoord); int a = cmd.ExecuteNonQuery(); если (а == 1) { Успех = правда; } иначе, если (а == -1) { Успех = ложь; } конн.Закрыть(); } }
Я создаю приложение для входа в систему с помощью C# и SQL Server.
Что делает моя программа: она проверяет, можно ли найти данное имя пользователя и пароль в базе данных.
Если его можно найти, ExecuteNonQuery() должен вернуть 1 (найдена 1 строка).
Если комбинация не существует, ExecuteNonQuery() должен вернуть что-то другое.
Но в моем случае всякий раз, когда я использую хорошую или неправильную комбинацию, она всегда возвращает -1... как мне это исправить?
Я знаю, что по этому же вопросу уже есть несколько сообщений, но он до сих пор не исправлен...
Кроме того, в чем разница между ExecuteNonQuery() и ExecuteScalar()?
Это отправляемый запрос:
private void btn_loginvolgende_Click(отправитель объекта, EventArgs e) { gebruiker.Gebruikersnaam = Convert.ToString(tb_gebruikersnaamlogin.Text); gebruiker.Wachtwoord = Convert.ToString(tb_wachtwoordlogin.Text); gebruiker.Achternaam = "а"; gebruiker.Geslacht = "а"; gebruiker.Geslacht = "а"; gebruiker.Huidiggewicht = 1; gebruiker.Streefgewicht = 1; gebruiker.Leeftijd = 1; gebruiker.Naam = "а"; db.QueryToDatabase("Выберите количество (*) из Gebruiker, где Wachtwoord = @Wachtwoord И Gebruikersnaam = @Gebruikersnaam;", gebruiker); Thread.Sleep(500); если (db.Success == false) { MessageBox.Show("Войти в систему!"); } иначе, если (db.Success == true) { MessageBox.Show("Вы достигли успеха в журнале"); } } а это мой класс:
public void QueryToDatabase(строка CommandText, Gebruikerklasse gebruiker) { // новое соединение, созданное // выполнение запроса по 'buttonclick' и возвращение к нему // als ExecuteNonQuery не может быть использовано в качестве er iets fout gegaan. Dmv een bool moet hij dan een bericht tonen используя (SqlConnection conn = новый SqlConnection(connectionString)) используя (SqlCommand cmd = новый SqlCommand(commandText, conn)) { конн.Открыть(); cmd.Parameters.AddWithValue("@Naam", gebruiker.Naam); cmd.Parameters.AddWithValue("@Achternaam", gebruiker.Achternaam); cmd.Parameters.AddWithValue("@Leeftijd", gebruiker.Leeftijd); cmd.Parameters.AddWithValue("@Geslacht", gebruiker.Geslacht); cmd.Parameters.AddWithValue("@Huidiggewicht", gebruiker.Huidiggewicht); cmd.Parameters.AddWithValue("@Streefgewicht", gebruiker.Streefgewicht); cmd.Parameters.AddWithValue("@Gebruikersnaam", gebruiker.Gebruikersnaam); cmd.Parameters.AddWithValue("@Wachtwoord", gebruiker.Wachtwoord); int a = cmd.ExecuteNonQuery(); если (а == 1) { Успех = правда; } иначе, если (а == -1) { Успех = ложь; } конн.Закрыть(); } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение