table: users
userid: int
name: varchar(10)
SqlCommand sqlCommandCheck = new SqlCommand("SELECT * FROM users WHERE userid=@ParameterUserID AND name='@ParameterName' ", matchSqlConnection);
sqlCommandCheck.Parameters.AddWithValue("@ParameterUserID", userid);
sqlCommandCheck.Parameters.AddWithValue("@ParameterName", name);
SqlDataReader readerSql = sqlCommandCheck.ExecuteReader();
if (!readerSql.HasRows) ...
Εδώ παίρνω ότι ΔΕΝ έχει γραμμές ενώ έχει
SqlCommand sqlCommandCheck = new SqlCommand("SELECT * FROM users WHERE userid=" + userid+ " AND name='" + name+ "' ", matchSqlConnection);
SqlDataReader readerSql = sqlCommandCheck.ExecuteReader();
if (!readerSql.HasRows) ...
Εδώ παίρνω ότι ΈΧΕΙ γραμμές (όπως και συμβαίνει)
Και έχω και ένα δεύτερο ερώτημα :
Γιατί αν βάλω SELECT * FROM users WHERE userid='" + userid+ "' AND name='" + name+ "'
Δηλαδή '' σε τιμή για int χτυπάει error για αδυναμία convertion σε int ή tinyint κτλ. Αφού το παραγόμενο ερώτημα αν το εκτελέσω στον SQL Server επιστρέφει κανονικά απάντηση.
Τι πρέπει να γνωρίζω για τον SQL Server & SQL και δεν το γνωρίζω;