Παίρνεις την τιμή ενός πεδίου με:
ds.Tables[0].Rows[0]["userId"]
Μερικά σχόλια στον κώδικά σου, ιδιαίτερα επειδή κάνει user authentication:
Αποτελεί μεγάλο security hole να εισάγεις απευθείας το user id που έχει εισάγει ο χρήστης μέσα στην sql. Αν π.χ. ο χρήστης εισάγει για user id το
'; TRUNCATE TABLE Users; select '
Τότε τελικό query θα είναι
Select * From [Users] Where userId=''; TRUNCATE TABLE Users; select ''
το οποίο θα κάνει κάτι πολύ κακό :-)
Είναι προτιμότερο να βάλεις το user id σαν named parameter ως εξής:
string strSQL = "SELECT @ FROM Users WHERE UserID=@UserID";
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter(strSQL, connection);
da.SelectCommand.Parameters.Add("@UserID", strUserID);
Επίσης, είναι προτιμότερο να στέλνεις το password στη βάση σαν παράμετρο με ένα statement του τύπου:
SELECT @ FROM Users WHERE UserID=@UserID AND Password=@Password
Γιατί αλλιώς ένας "πονηρός" χρήστης με τη βοήθεια του debugger μπορεί να υποκλέψει passwords (αν τα αποθηκεύεις σε plain text, κάτι που επίσης είναι κακό).
Νατάσα Μανουσοπούλου