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

 

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

Βοηθεια σε sql και c# !!!

Îåêßíçóå áðü ôï ìÝëïò RYUDO1987. Τελευταία δημοσίευση από το μέλος Dimitris Papadimitriou στις 11-04-2008, 00:33. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  10-04-2008, 22:04 41470

    Βοηθεια σε sql και c# !!!

    γεια σε ολους θελω μια μικρη βοηθεια εφτιαξα για μια εφαρμογη ενα login form που τραβαει το username kai password apo sql αλλα εχω ενα μικρο προβληματακι στο if p exo valei οταν ειναι σωστα τα ορισματα τ χρηστη τοτε ολα κομπλε (εχω βαλει αα και κωδικο και ονομα ) ,τωρα η else που εχω απο κατω τρεχει μονο οταν τα ορισματα ειναι ιδια αλλα σε κεφαλαια και οχι διαφορετικα δεν μπορω να καταλαβω το γιατι (δεν ξερω μηπως φταιει οτι στη βαση τα username kai password τα εχω βαλει nvarchar(50)!!!)

    Κωδικας κουμπιου login form:
    private void lgnBtn_Click(object sender, EventArgs e)
    {
    SqlConnection lgnConnection = new SqlConnection();
    lgnConnection.ConnectionString="Data Source=.\\SQLEXPRESS;"+"AttachDbFilename=C:\\Users\\ryudo\\Desktop\\workspace\\sql_goldshop_project\\Project1\\Goldshop_Tax\\Goldshop_Tax\\gold_tax.mdf;"+"Integrated Security=True;"+"User Instance=True";
    lgnConnection.Open();
    SqlCommand cmd = new SqlCommand("SELECT username,password FROM dbo.users WHERE username='" + textBox1.Text + "' and password='" + maskedTextBox1.Text + "'", lgnConnection);
    SqlDataReader dr;
    dr = cmd.ExecuteReader();
    while (dr.Read())
    {
    if (dr["username"].ToString() == textBox1.Text && dr["password"].ToString() == maskedTextBox1.Text)
    {
    Form.ActiveForm.Hide();
    GoldShop_Tax_Form blah1 = new GoldShop_Tax_Form();
    blah1.Show();

    }
    else
    {
    label1.Text = "Sorry wRONG";


    }
    }
    dr.Close();
    lgnConnection.Close();


    }


    α και κατι ακομα για να καλεσω GoldShop_Tax_Form(); π πρεπει κανωονικα να κανω την δημιουργια του instance ? μεσα στο κουμπι λεει???
    η να φτιαξω αλλη κλαση .....

    ειμαι καινουριος και σε c# kai sql οποτε οποια βοηθεια δεκτη ευχαριστω!
  •  10-04-2008, 22:21 41471 σε απάντηση της 41470

    Απ: Βοηθεια σε sql και c# !!!

    Αν και δεν καταλαβαίνω ακριβώς το μήνυμά σου, μάλλον κάτι έχει να κάνει με τα πεζά - κεφαλαία.

    Η πρώτη περίπτωση είναι στο SqlCommand: εδώ το αν θα ταιριάξει το case εξαρτάται από το collation που έχεις ορίσει στον πίνακα users, αν θα είναι case sensitive ή case insensitive. Υποθέτω πως είναι case insensitive από τα συμφραζόμενα, επομένως εσύ έχεις πει τον χρήστη σου myusername αλλά το SqlCommand πετυχαίνει ακόμα κι αν του δώσεις MyUserName.

    Η δεύτερη περίπτωση είναι στο if όπου έχουμε c# κώδικα: εδώ η σύγκριση όπως την κάνεις είναι case sensitive.

    Το σίγουρο είναι ότι πρέπει να διαλέξεις ποια θέλεις να είναι η συμπεριφορά του προγράμματός σου: case sensitive ή insensitive;

  •  10-04-2008, 23:44 41473 σε απάντηση της 41471

    Απ: Βοηθεια σε sql και c# !!!

    "Η δεύτερη περίπτωση είναι στο if όπου έχουμε c# κώδικα: εδώ η σύγκριση όπως την κάνεις είναι case sensitive."

    Πως μπορώ να μην κανω την συγκριση ως case sensitive ??

    Το θεμα ειναι οτι και οταν δινω ορισμα τελιως ασχετο με το username δλδ αν το username einai user kai δωσω USER M ΒΓΑΖΕΙ ΛΑΘΟς ΑΝ ΟΜΩΣ ΔΩΣΩ MLAMLKA δεν μ μπανει καθολου στην else και αυτο ειναι π μ προβληματιζει !!!!

    Επισης δεν ξερω αν εχω κανει καλα και εχω βαλει την δημιουργια της δευτερης φορμας μΕΣΑ ΣΤΟ ΚΟΥΜΠΙ THX!!
  •  11-04-2008, 00:33 41474 σε απάντηση της 41473

    Απ: Βοηθεια σε sql και c# !!!

    Αν καταλαβαίνω καλά το πρόβλημά σου γίνει γιατί δεν γίνεται η σύκριση σωστά στο sql statement; Οι συγκρίσεις στον sql server είναι case sensitive (CS) όταν το collation της βάσης είναι αυτού του τύπου (δηλαδή περιέχει στο όνομά του το CS - π.χ. Greek_CS_AS). Αν θέλεις οι συγκρίσεις να είναι case insensitive (CI) πρέπει να αλλάξεις το collation (π.χ. GREEK_CI_AS). Έτσι επηρεάζεις βέβαια όλες τις συγκρίσεις σε όλη τη βάση. Αν δεν το θέλεις... υπάρχει άλλη λύση.

    Tip: Setting and Changing the Database Collation

    Στο μεταξύ κάτι πολύ σημαντικό: Θα ήθελα να διορθώσεις τα μηνύματά του προσθέτοντας τόνους και χρησιμοποιώντας ορθογραφικό έλεγχο. Επίσης βάλε μερικά tabs/κενά στον κώδικα για να είναι αναγνώσιμος. Σε ευχαριστώ.

    Τέλος ρίξε και μια ματιά στους κανονισμούς αυτού του community. Αν και έχουν γέλιο (έβαλε ο Ζαχαρίας το χεράκι του!) πρέπει να τους σεβόμαστε!


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems