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

 

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

ADO.NET απορίες

Îåêßíçóå áðü ôï ìÝëïò kostikas. Τελευταία δημοσίευση από το μέλος George J. Capnias στις 07-02-2010, 19:27. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-02-2010, 18:02 56985

    ADO.NET απορίες

    Προσπαθώ εδώ και μέρες να κατανοήσω το ADO.NET και επειδή είμαι μιας ηλικίας και μη γνώστης της νέας τεχνολογίας θα παρακαλούσα να μου εξηγήσεται μερικά πράγματα.

    Διαβάζω τον παρακάτω κώδικά από ένα βιβλίο και έχω αρκετές απορίες.

    1) cmdString  as string ="blah blah"

    2) Dim sqlCommand as new SqlCommand

    3) Dim sqlDataAdaptor as AqlDataAdaptor

    4 Din sqlDataSet as DataSet

    5) Dim intValue as integer

    ------------------

    6) sqlCommand.Connection = sqlConnection

    7 sqlCommand.Command.Type = CommandType.Text

    8) sqlCommand.Command.Text = cmdString

    -----------------

    9)  sqlDataAdapter.selectCommand = sqlCommand

    10) sqlDataSet = New DataSet()

    11) sqlDataSet.Clear()

    12) sqlpDataAdapter.Fill(sqlDataSet)

    .... 

    Ερώτηση 1 : στo ADO.NET έχουμε identifier case sensitivity?

    Ερώτηση 2 : στην γραμμή 6 τι είναι το sqlConnection Που είναι ορισμπένο?

    Ερώτηση 3 : στην γραμμή 7 τι είναι το CommandType.Text Που είναι ορισμπένο?

    Τέλος θα ήθελα να ρωτήσω το εξής.

    Ποιά η διαφορά πρόσβασης σε Datatable το οποίο εμπεριέχεται σε dataset (μέσω dataAdapter) από την πρόσβαση σε απλό DataTable  μέσω Command Parameters?

    Κωστίκας


    Μηδεν Αγαν
  •  07-02-2010, 18:43 56986 σε απάντηση της 56985

    Απ: ADO.NET απορίες

    kostikas:
    Προσπαθώ εδώ και μέρες να κατανοήσω το ADO.NET και επειδή είμαι μιας ηλικίας και μη γνώστης της νέας τεχνολογίας θα παρακαλούσα να μου εξηγήσεται μερικά πράγματα.

    Υπάρχει προηγούμενη εμπειρία, από ADO (v2.x) ή από DAO, ή πάτε κατευθείαν στο ADO.NET;

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  07-02-2010, 18:48 56987 σε απάντηση της 56986

    Απ: ADO.NET απορίες

    Δυστυχώς όχι.

    Και μια ακόμα απορία, όταν μιλάμε για DataTable τι σημαίνει "The table can be considered as a direct mapping to the real table in the database".

    Ευχαριστώ όλους σας.

     


    Μηδεν Αγαν
  •  07-02-2010, 19:27 56989 σε απάντηση της 56987

    Απ: ADO.NET απορίες

    Να εξηγήσω τότε λίγο "χοντροκομμένα":

    • Για να επικοινωνήσουμε με μια οποιαδήποτε βάση, θα πρέπει να ορίσουμε το context (συνεδρία) μέσω του οποίου θα γίνουν τα transactions (συναλλαγές). Αυτό το κάνουμε με το Connection object. Εδώ θα πρέπει να καθορίσουμε την βάση που θέλουμε να μιλήσουμε (αρχείο δεδομένων ή server) καθώς και τα credentials που θα μας δώσουν δικαιώματα επάνω στις συναλλαγές. Δημιουργώντας τη συνεδρία, ταυτόχρονα ορίζονται κάποιες θέσεις μνήμης που θα χρησιμοποιηθούν σαν ενδιάμεσοι χώροι αποθήκευσης δεδομένων.
    • Η συναλλαγή με την βάση γίνεται με την χρήση της γλώσσας SQL. Οι εντολές που θα γράψουμε προς την βάση θα πρέπει να οριστούν, και να γίνουν οι απαραίτητες προετοιμασίες πριν στήλουμε την συναλλαγή προς την βάση. Προετοιμασίες αποτελούν, ο ορισμός τιμών σε μεταβλητές που τυχόν έχουν μέσα οι εντολές SQL που ορίσαμε να εκτελεστούν. Εδώ εισέρχεται το Command object, που του ορίζουμε το SQL κώδικα καθώς και τα δεδομένα που θέλουμε να περάσουμε προς την βάση.
    • Έχοντας δημιουργήσει τη συνεδρία (connection), μπορούμε να εκτελέσουμε (execute) τον SQL κώδικα στην βάση δεδομένων. Ανάλογα με τις εντολές που έχουμε στείλει προς την βάση, είναι δυνατόν να πάρουμε πίσω ένα σύνολο αποτελεσμάτων. Αυτό αποτέλεσμα μπορούμε να το μεταφέρουμε από την βάση προς το πρόγραμμά μας με την χρήση του Reader object.

    Τα τρία αυτά αντικείμενα (Connection, Command, Reader) είναι τα απολύτως απαραίτητα για να έχουμε επικοινωνία με μια βάση δεδομένων. Οι συναλλαγές που γίνονται σε αυτά, είναι "πραγματικού χρόνου". Μέχρι την έλευση του της πρώτης έκδοσης του .NET Framework, ήταν και τα μόνα που είχαμε για αυτή τη δουλειά.

    Με την πρώτη έκδοση του .NET Framework ή Microsoft θέλοντας να τονίσει, ότι οι συναλλαγές με την βάση δεδομένων, μπορεί να μην γίνονται σε πραγματικό χρόνο, είτε να γίνονται ανά τακτά χρονικά διαστήματα, με τον ενδιάμεσο χρόνο το πρόγραμμα "πελάτης" μπορεί να μην ήταν συνεχώς συνδεδεμένο με την βάση δεδομένων, έφτιαξε μια σειρά αντικειμένων που μπορούσαν να πάρουν δεδομένα από την βάση στην μνήμη που χρησιμοποιεί το πρόγραμμα "πελάτης" και να αναπαραστήσει την βάση δεδομένων (Dataset). Για να υποστηρίξει αυτό το μοντέλο έφτιαξε εκτός από το Dataset και άλλα αντικείμενα - το DataAdapter και το DataTable μεταξύ άλλων.

    Αυτά τα αντικείμενα επιτρέπουν, την "εν μνήμη" αναπαράσταση μιας βάσης δεδομένων (Dataset), με την αναπαράσταση αυτή να δέχεται μια έκδοση δεδομένων από την βάση, να επιτρέπει την επεξεργασία της έκδοσης με αλλαγές, προσθήκες και διαγραφές, και τέλος να συγχρονίζει την τοπική έκδοση με την βάση δεδομένων ξανά, με την αποστολή αλλαγών προς την βάση και την λήψη ενημερώσεων από αυτή, με τον ταυτόχρονο απόλυτο έλεγχο αυτής της συναλλαγής από το πρόγραμμα που φιλοξενεί το Dataset.

    Βέβαια η "μόδα" των Dataset δεν έγινε αποδεκτή από τους Enterprise επιπέδου προγραμματιστές που χρησιμοποιούν τις τεχνολογίες της Microsoft. Έτσι η ιστορία συνεχίζεται με τα νεότερα Data Access Frameworks, όπως το LinqToSql και το Entity Framework και ότι άλλο θα δούμε στο μέλλον...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems