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

 

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

αλλαγη connection string στον κωδικα

Îåêßíçóå áðü ôï ìÝëïò emmstra. Τελευταία δημοσίευση από το μέλος Markos στις 20-03-2012, 19:12. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-03-2012, 17:41 69717

    αλλαγη connection string στον κωδικα

    καλησπερα

    γραφω μια εφαρμογη σε vb2010 με βαση δεδομενων access 2003.

    Εχω ορισει το connection string της βασης στα properties της εφαρμογης στην επιλογη settings. Επειδη ειμαι λιγακι αρχαριος , λογω αυτου θεωρω οτι δημιουργειται το αρχειο app.config στο οποιο περιεχεται το connection string.

    Τωρα θελω να δωσω την δυνατοτητα στον χρηστη να μπορει να αλλαξει την θεση της βασης. Πως γινεται αυτο??

  •  19-03-2012, 19:13 69719 σε απάντηση της 69717

    Απ: αλλαγη connection string στον κωδικα

    Για να μπορέσεις να το κάνεις αυτό θα πρέπει να σιγουρέψεις ότι το scope του setting του Connection string είναι σε User, μέσα από τα settings του project σου.

    Από τη στιγμή που αλλάξει το scope το πρόγραμμα μπορεί να το αλλάξει για λογαριασμό του χρήστη, καθώς και κάθε χρήστης της εφαρμογής μπορεί να έχει δικό του μοναδικό...

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  19-03-2012, 19:21 69720 σε απάντηση της 69719

    Απ: αλλαγη connection string στον κωδικα

    το scope ειναι σε application. Μπορω ετσι απλα να το αλλαξω σε user?

    μετα πως θα το αλλαζω μεσα απο τον κωδικα?

     

  •  19-03-2012, 19:43 69723 σε απάντηση της 69720

    Απ: αλλαγη connection string στον κωδικα

    Από ότι βλέπω, αν ο τύπος είναι Connection δεν μπορεί να αλλάξει σε User - παρόλα αυτά όλες τις τιμές που μπαίνουν από τα settings μπορείς να τις δεις μέσα από το My.MySettings.Default.{Ονομα}. Αν ένα settings έχει Application scope είναι ReadOnly, στην περίπτωση που είναι User scope μπορείς να αλλάξεις την τιμή. Για να γίνει η αλλαγή μόνιμη πρέπει να την αποθηκεύσεις με My.MySettings.Default.Save()

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  19-03-2012, 21:25 69725 σε απάντηση της 69717

    Απ: αλλαγη connection string στον κωδικα

    Μια πιο απλή λύση θα ήταν να χρησιμοποιήσεις file operations. Μπορείς να βάλεις στην εφαρμογή σου μια επιλογή import και μία επιλογή export. Με την import θα επιλέγεις το αρχείο της βάσης δεδομένων απ' όπου κι αν βρίσκεται και θα το αντιγράφεις στο folder που βλέπει το connection string. Με την "export" θα εκτελείς την αντίστροφη διαδικασία. Εφόσον πρόκειται για file based βάση δεδομένων όπως είναι η Access, με λίγη προσοχή, δεν πιστεύω ότι θα συναντήσεις προβλήματα.

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  20-03-2012, 13:02 69731 σε απάντηση της 69725

    Απ: αλλαγη connection string στον κωδικα

    Είναι πολύ εύκολο να εμφανιστούν προβλήματα, ξεκινώντας από το τί γίνεται αν την ίδια βάση κοιτάζουν πολλοί χρήστες, ή διαφορετικά applications, τί γίνεται αν είναι μεγάλη η βάση, τί γίνεται αν η βάση βρίσκεται σε κάποιο file share κλπ. Το ότι η βάση είναι Access δεν σημαίνει ούτε ότι είναι μικρή ούτε ότι χρησιμοποιείται από ένα και μοναδικό χρήστη.

    emmstra, ΓΙΑΤΙ θέλες να αλλλάξεις το connection string? Ανάλογα με το λόγο μπορείς να επιλέξεις διαφορετικές λύσεις. Άλλο να θέλεις να συνδεθείς σε μία κοινή βαση που ήδη υπάρχει, άλλο να θέλεις να αλλάξεις το connection string για να ανταποκρίνεται στο installation directory που επιλέξει ο χρήστης.

    Ίσως μπορείς να χρησιμοποιήσεις την κλάση OleDbConnectionStringBuilder για να περάσεις το αρχικό connection string και μετά να αλλάξεις τις παραμέτρους που θέλεις με κώδικα


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  20-03-2012, 13:51 69732 σε απάντηση της 69731

    Απ: αλλαγη connection string στον κωδικα

    Παναγιώτης Καναβός:

    Είναι πολύ εύκολο να εμφανιστούν προβλήματα, ξεκινώντας από το τί γίνεται αν την ίδια βάση κοιτάζουν πολλοί χρήστες, ή διαφορετικά applications, τί γίνεται αν είναι μεγάλη η βάση, τί γίνεται αν η βάση βρίσκεται σε κάποιο file share κλπ. Το ότι η βάση είναι Access δεν σημαίνει ούτε ότι είναι μικρή ούτε ότι χρησιμοποιείται από ένα και μοναδικό χρήστη.

    emmstra, ΓΙΑΤΙ θέλες να αλλλάξεις το connection string? Ανάλογα με το λόγο μπορείς να επιλέξεις διαφορετικές λύσεις. Άλλο να θέλεις να συνδεθείς σε μία κοινή βαση που ήδη υπάρχει, άλλο να θέλεις να αλλάξεις το connection string για να ανταποκρίνεται στο installation directory που επιλέξει ο χρήστης.

    Ίσως μπορείς να χρησιμοποιήσεις την κλάση OleDbConnectionStringBuilder για να περάσεις το αρχικό connection string και μετά να αλλάξεις τις παραμέτρους που θέλεις με κώδικα



    Σ' αυτά που γράφει ο Παναγιώτης έχει δίκιο. Επίσης, το connection string δεν "δείχνει" μόνο ένα path και ένα database file. Μπορεί να περιέχει πιο ευαίσθητες πληροφορίες, όπως passwords, οι οποίες μάλιστα δεν πρέπει να είναι σε κοινή θέα και που θα πρέπει να είναι encrypted. Οι λύσεις είναι πολλές και εξαρτώνται από το σενάριο που θέλεις να υλοποιήσεις (deployment ή/και functionality). Αν και κάτι μου λέει ότι θέλεις η εφαρμογή σου να συμπεριφέρεται πάνω - κάτω σαν την Access. Δηλαδή να ανοίγεις τη βάση επιλέγοντας την από ένα file dialog box. Το file copy που σου πρότεινα παραπάνω το έκανα μόνο και μόνο για ευκολία. Αν το σενάριο είναι πιο πολύπλοκο η προσέγγιση είναι διαφορετική. Επίσης, αν έχεις πολλούς χρήστες υιοθέτησε καλύτερα μια λύση βασισμένη στον Sql Server.

    Ακόμα κι ένας άνθρωπος μπορεί ν' αλλάξει τον κόσμο. Μη θέλεις να κυβερνήσεις. Απλά δείξε το μονοπάτι κι ο κόσμος θ' ακολουθήσει!!
  •  20-03-2012, 18:02 69734 σε απάντηση της 69732

    Απ: αλλαγη connection string στον κωδικα

    ευχαριστω ολους για την βοηθεια

    ο λογος που θελω να το αλλαξω ειναι για να μπορει ο χρηστης να δηλωνει την διαδρομη της βασης. π.χ. οταν εδωσα την εφαρμογη η βαση ηταν στον φακελο της εφαρμογης. Μετα ο χρηστης θελησε να την βαλει σε εναν server, οποτε εγω αλλαξα την ρυθμιση στο app.config file. Θελω ο χρηστης να μπορει να οριζει που ειναι η βαση. Επισης προσπαθησα να δημιουργησω νεο setting για το connection string αλλα δεν μπορω να κανω το scope user.

    Πως γινεται αυτο?

     

  •  20-03-2012, 19:12 69735 σε απάντηση της 69734

    Απ: αλλαγη connection string στον κωδικα

    Το connection string δεν είναι παρά μόνο ένα string. Το πράγμα περιπλέκεται καθώς υπεισέρχονται οι "παραξενιές" του configuration file. Τεχνικές υπάρχουν πολλές. Κάποιες μπορούν να χαρακτηριστούν ορθόδοξες ενώ κάποιες άλλες σαν "hacks". Ένα κλασικό βίντεο που κατά τη γνώμη μου πρέπει να παρακολουθήσεις είναι αυτό. Υπάρχει και διαθέσιμος κώδικας τόσο σε vb όσο και σε c#. Επίσης, ρίξε μια ματιά στο documentation. Το πιο ασφαλές object για να κατασκευάσεις ένα connection string είναι ο ConnectionStringBuilder. Τέλος, αν σου αρέσει να ζεις επικίνδυνα, μπορείς να πειραματιστείς με την τιμή του "DataDirectory". Όπως καταλαβαίνεις, στο ερώτημά σου υπάρχουν πολλές απαντήσεις. Η συμβουλή μου είναι να μάθεις καλά και σε βάθος τις εμπλεκόμενες τεχνολογίες και τεχνικές προτού τις χρησιμοποιήσεις.

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