Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Γιατί το ίδιο ερώτημα με Parameters και χωρίς φέρνει μία reader.HasRows false και true;

  •  22-02-2007, 12:17

    Γιατί το ίδιο ερώτημα με Parameters και χωρίς φέρνει μία reader.HasRows false και true;

    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 και δεν το γνωρίζω; 

    Δημοσίευση στην κατηγορία: , ,
Δείτε όλες τις δημοσιεύσεις της Θεματική Ενότητας
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems