w moim programie muszę sprawdzić, czy rekord w bazie danych już istnieje w tabeli przy użyciu instrukcji if
. przy użyciu C# próbuję to zrobić poprzez połączenie sql. jak przypuszczam, że polecenie ExecuteNonQuery();
zwraca wartość całkowitą, jeśli moje przypuszczenie jest prawdziwe, chcę wiedzieć, jaka wartość jest prawdziwa, aby wiedzieć, że dany rekord istnieje w tabeli, czy nie. Oto przykład z mojego kodu:Sprawdź, czy rekord w tabeli istnieje w bazie danych poprzez ExecuteNonQuery
using (SqlConnection sqlConnection = dbUtil.GetSqlConnection(dbUtil.GetConnectionStringByName("NonConnectionString")))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT * from users where user_name like 'Adam' AND password like '123456'", sqlConnection))
{
sqlresult = sqlCommand.ExecuteNonQuery();
}
}
rozważa SQLResult został zainicjowany wcześniej głównie jako int sqlresult;
więc chciałbym wiedzieć, że jeśli użytkownik „Adam” istnieje w bazie danych, czy nie. a jeśli istnieje, to chcę, aby kontynuować za „czy” oświadczenie mówiąc na przykład:
if(sqlresult == 0)
{
MessageBox.Show("Adam exists!");
}
więc ja po prostu nie wiem liczbę całkowitą, że powinien wrócić, a ja nie jestem też pewien, że jest to właściwy sposób, aby to zrobić.
dziękuję.
Warto zauważyć, że sqlCommand.ExecuteScalar() zwraca obiekt nie jest int: http://msdn.microsoft.com/en-us/library/system.data. sqlclient.sqlcommand.executescalar (v = vs.110) .aspx – TonE
dziękuję za ten świetny przykład, mam pytanie, z twojego "używania" kodu blokowego, czy obiekt rzucany jest na brakujący w zmiennej userCount? lub nie jest potrzebne? – WhySoSerious
@WhySoPious: dzięki za uwagę, dodałem go, ponieważ go brakowało. Jak już wspomniano, @TonE jest wymagane, ponieważ 'ExecuteScalar' zwraca' object'. –