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

 

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

'Options' Menu!

Îåêßíçóå áðü ôï ìÝëïò Τάσκος Γιώργος. Τελευταία δημοσίευση από το μέλος Johnnyxp64 στις 09-10-2008, 12:27. Υπάρχουν 15 απαντήσεις.
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  07-10-2008, 15:27 45219

    'Options' Menu!

    Καλησπέρα σε όλους,

    Θέλω να κάνω μια εφαρμογή που να διαβάζει στοιχεία από μια access.db (2003) και να κάνει διαφορές εργασίες,
    όπως, INSERT,UPDATE,DELETE κτλ. κτλ. Αυτό που σκεφτόμουν και δεν ξέρω πώς ακριβώς θα γίνει, είναι
    ότι σε ένα MenuStrip θα έχω ένα 'Options' κι εκεί θέλω να δίνεις το Path του αρχείου .mdb και κάπου να το
    σώζει, ή θα μπορούσα να σώζω και άλλες διάφορες ρυθμίσεις. Τι πρέπει να αρχίσω να ψάχνω για να το καταφέρω?

    Ευχαριστώ εκ των προτέρων.

  •  07-10-2008, 16:00 45222 σε απάντηση της 45219

    Απ: 'Options' Menu!

    γεια σου φιλε,

    πως λες να παιξεις, με datatables και κωδικα or TableAdapters και λιγο drag+drop?

    η βασh θα εχει μονιμη δομη η μπορει να αλλαζει? για δωσε λιγο info, γιατι αν η βαση δεν ειναι σταθερη και μεσα της πινακες και πεδια αλλαζουν (οχι εγγραφες αυτο ειναι φυσιολογικο)
    τοτε παμε αλλου, αν ομως ειναι κατι σταθερο και θες να το μανατζαρεις, καταρχας βεβαιωσου οτι ελεγχεις το ConnectionString!

    πως?

    να ενα παραδειγμα connection string για access.

    connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Users.mdb"

    εσυ πρεπει να εχει ενα OpenFileDialog που θα επιλεγει ο user που ειναι η βαση του!
    θα περνει το selectedpath και θα το "κολας" σε μια μεταβλητη που χεις ετοιμη και με βαση αυτη θα ξεκινησεις να κανεις connection στην Βαση μετα παμε σε datatables κτλ.

    θα εγραφα κι αλλο αλλα δεν ξερω καν πως θελεις να δουλεψεις και δεν γνωριζω 2-3 πεδια και πινακες απο την βαση σου για να ειναι ποιο καλο το παραδειγμα.

    ξεκινας παντος απο εδω και μετα προχωρας, διαβασε για DataTables πως φτιαχνοντε και πως τα "κουμπωνεις" με τους πινακες που θες και πως μπορεις να εκτελεις sql σε αυτα

    για να δουλεψει το παρακατω ενοειτε ριχνεις σε μια φορμα ενα κουμπι με το ονομα button1 και ενα OpenFileDialog control. φανταζομαι τα ξερεις.

    παντος ετσι μπορεις ευκολα να επιλεγεις αλλη βαση. αρκη πρωτα αν εχεις ανοιχτο καποιο connection na το κλεινεις και μετα να κανεις αλλαγες στο connection stiring αλλιως θα crashareiw. 

    ελπιζω να ειναι κοντα σε αυτο που ζητας goodluck!Smile

    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

    Dim MyConnString As String = "connectionString=""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=""" & OpenFileDialog1.FileName & """"

    End If

    End Sub


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  08-10-2008, 00:32 45247 σε απάντηση της 45222

    Απ: 'Options' Menu!

    Ας πούμε ότι η βάση θα έχει μόνιμη δομή.

    Αυτό που εννοώ είναι ότι φαντάσου ένα οποιοδήποτε πρόγραμμα που έχει Options Menu,
    υποτίθεται πως κάπου πρέπει να σώζονται, και ΑΝ θέλεις ποτέ να αλλάξεις κάτι απο εκεί,
    π.χ το Connection String, η το όνομα της βάσης (εννοείται ότι τον κώδικα τον φροντίζεις ανάλογα).
    Φαντάζομαι ότι θα πρέπει να φορτώνει αυτές τις παραμέτρους OnLoad κτλ.

  •  08-10-2008, 01:28 45248 σε απάντηση της 45247

    Απ: 'Options' Menu!

    αρα ρωτας που να αποθηκευοντε αυτοι οι παραμετροι?Confused

    διαλεξε και παρε, απο το .config της εφαρμογης, σε ενα τχτ, στην registry, ή το καλητερο μου σε ενα δικο μου XML. Η ακομα κανεις μια δευτερη μικρη βαση πες την π.χ settings.mdb και κανε ενα πινακα που θα αποθηκευεις τις ρυθμισεις σου. αυτη η βαση μετα θα πρεπει Παντα να ξεκινα με το formload και απο εκει και περα, θα διαβαζεις τις ρυθμισεις και θα τις εφαρμοζεις. ευκολο.

    η ερωτηση ποια ειναι τωρα ακριβως? με μπερδεψες Tongue Tied


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  08-10-2008, 03:00 45249 σε απάντηση της 45248

    Απ: 'Options' Menu!

    Συγγνώμη που σε παίδεψα johnny:) μου απάντησες, αυτή ήταν η ερώτηση, με ποιους τρόπους
    μπορώ να υλοποιήσω αυτό το σκεπτικό.

    Ευχαριστώ.

  •  08-10-2008, 08:40 45254 σε απάντηση της 45249

    Απ: 'Options' Menu!

    Για τέτοιου είδους πληροφορίες, το καλύτερο μέρος για να αποθηκευτούν είναι τα Application/User Settings. Όλες οι υπόλοιπες λύσεις έχουν διάφορα μειονεκτήματα με κυριότερα την ευχρηστία και τα δικαιώματα που απαιτούνται για να γράψεις/διαβάσεις σε  "ευαίσθητες" περιοχές του συστήματος όπως το Registry ή ο φάκελος Program Files, κλπ. Με τα Application/User Settings δεν χρειάζεται να σκοτίζεσαι για το που αποθηκεύονται οι πληροφορίες και επιπρόσθετα είναι πολύ εύκολο το να διαβάσεις και να γράψεις:

    My.Settings.ABCConnectionString = "..." και γράφεις
    dbConStr = My.Settings.ABCConnectionString  και διαβάζεις

    Τα settings μπορείς να τα ορίσεις και να δώσεις αρχικές τιμές μέσω των project properties, στο tab "Settings".


    Vir prudens non contra ventum mingit
  •  08-10-2008, 14:29 45260 σε απάντηση της 45254

    Απ: 'Options' Menu!

    Πολύ καλύτερα με τα Settings :)

  •  08-10-2008, 15:51 45267 σε απάντηση της 45260

    Απ: 'Options' Menu!

    Θα συμφωνήσω με το Μάνο. Τα settings απαγορεύεται να αποθηκεύονται οπουδήποτε. Για παράδειγμα, για να αποθηκεύσει κάποιος οτιδήποτε στο Program Files πρέπει να είναι administrator του μηχανήματος, κάτι που δημιουργεί προβλήματα ασφάλειας. Και όταν λέμε απαγορεύεται, εννοούμε να αρνηθούν οι πελάτες  να εγκαταστήσουν την εφαρμογή.

    Ένας χρήστης όμως έχει δικαίωμα να γράψει οτιδήποτε στο \Documents and Settings\UserName\AppData. Το σωστό σημείο για να σώσει μία εφαρμογή τα settings είναι σε ένα δικό της folder κάτω από το AppData. Κάτι αντίστοιχο συμβαίνει και με το registry, όπου ο χρήστης έχει πρόσβαση μόνο στο HKEY_CURRENT_USER και θα πρέπει εκεί να βάλει ότι θέλει.

    Τα .NET settings σε απαλλάσσει από το να σκέφτεσαι πού να βάλεις το κάθε setting και πως να το διαβάσεις. Το .NET αυτόματα τοποθετεί τα user settings στο σωστό σημείο για το χρήστη και την εφαρμογή σου και τα φορτώνει χωρίς εσύ να πρέπει να ξέρεις που βρίσκονται αυτά.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  08-10-2008, 16:09 45268 σε απάντηση της 45267

    Απ: 'Options' Menu!

    Ναι, παίζει μια χαρά και μπορείς και αλλάζεις ότι θέλεις πολύ εύκολα, ήταν αυτό που ήθελα :)
    Σύνδεσα την φόρμα Options με Properties που παίρνουν τιμές απο Properties.Settings.Default...
    και όλα μια χαρά.

    Ευχαριστώ ;)

  •  08-10-2008, 23:17 45278 σε απάντηση της 45268

    Απ: 'Options' Menu!

    δηλαδη ενα xml ειναι apla γραφεις και διαβαζεις πανευκολα σαν μεταβλητες.

    εμενα παλι δεν μου καθεται καλα, με ενοχλει να περνει αποφασεις το .ΝΕΤ που θα κρυβει γιατι τα κρυβει sto Appl Data και κοσμος δεν το ξερει να παρει backup και 

    δεν ειναι και καθολου ευκολο να καθεσαι να ανοιγεις 50 folders μεχρι να βρεις κατι που πρεπει να αλλαξεις απο 'εξω' manual.Sad

    ναι ναι ξερω εκει ειναι το "προβλεπομενο" λεει η microsoft και καλα λεει αλλα εγω θελω να το αλλαξω αυτο μπορω?

    αμ το αλλο σε καθε εφαρμογη δεν κανει μονο το ονομα της αλλα παραγει folder και ενα 24φηφιο και χαρατηρες νομιζω που δεν ειναι σταθερος κατι σαν myApplication..exe_Url_4b0wq2eehuknobobzezqlt5qlalxohg3

    τι ακριβως ειναι αυτο βρε παιδια???Confused δεν ξερω και θα ηθελα να μαθω ωστε να το εκμεταλeυτω  κι εγω καλητερα το my.settings και πως να του πω οτι το default directory θα ειναι Αλλο απο το ..\...\...\...\Application Data\...\...???

    εψαξα λιγο την save αλλα δεν νομιζω οτι μπορει να αντιγραφει το user.config οπου θελω εγω...μπορει? να κανω κατι σαν backup διαδηκασια να προλαβαινω χαζομαρες ρυθμισεις-αλλαγες χρηστων.....

    παντος ειναι ποιο ευκολοYes, ειναι ομως παραμετροποιησημο?

    τnx


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  09-10-2008, 00:40 45281 σε απάντηση της 45278

    Απ: 'Options' Menu!

    To μεγάλο πλεονέκτημα των settings είναι ότι είναι type safe μηχανισμός, μπορείς δηλαδή να πεις κάτι σαν το παρακάτω:

    SomeControl.BackColor = My.Settings.ControlBackColor

    γλυτώνεις δηλαδή από το να περνάς και να κάνεις parse strings.

    Μπορείς εύκολα να βρεις την τοποθεσία που βρίσκονται τα user settings με κώδικα σαν τον παρακάτω:

    Dim config as Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)
    Console.WriteLine("Local user config path: {0}", config.FilePath)

    Η περίεργη αυτή οργάνωση που αναφέρεις υπάρχει για λόγους security καθώς και για να εξυπηρετείται το ClickOnce με τα updates του, κλπ. Από εκεί και πέρα, η όλη διαδικασία ελέγχεται από έναν SettingsProvider ο οποίος στην συγκεκριμένη περίπτωση είναι ένας LocalFileSettingsProvider. Αυτό σημαίνει ότι μπορείς να γράψεις τον δικό σου provider που θα έχει το functionality που θες ενώ παράλληλα θα έχεις την ίδια ευκολία χρήσης (βλ. type safety) κατά το development. Μπορείς να βρεις samples στο MSDN ωστόσο θα το σκεφτόμουν πολύ για να κάνω κάτι τέτοιο. Για παράδειγμα ο default application/user settings μηχανισμός δεν δημιουργεί κανένα πρόβλημα κατά την εγκατάσταση μιας εφαρμογής στα Vista καθώς ο SettingsProvider συμμορφώνεται με τις επιταγές του λειτουργικού ως προς το που μπορεί να γράψει και που όχι.

     


    Vir prudens non contra ventum mingit
  •  09-10-2008, 01:15 45283 σε απάντηση της 45278

    Απ: 'Options' Menu!

    Johnny, να το πω κάπως αλλιώς. Αν πας να εγκαταστήσεις σε μεσαία ή μεγάλη εταιρεία software και τους πεις ότι θέλεις ντε και καλά να γράψεις στο Program Files, θα σε πετάξουν από το παράθυρο πρωτού προλάβεις να πεις κύμινο. Εσύ μπορεί να θέλεις να πειράζεις το μηχάνημα στο σπίτι σου, όσοι όμως δουλεύουν σε IT τμήματα τα οποία πρέπει να υποστηρίξουν εκατοντάδες χρήστες ΔΕΝ θέλουν οι απλοί χρήστες να πειράζουν ή να έχουν administrator δικαιώματα.

    Το App Data είναι ένα σαφώς ορισμένο directory, το οποίο γνωρίζουν όλα τα προγράμματα backup και το παίρνουν κανονικά backup. Αν εσύ θέλεις να χρησιμοποιήσεις άλλο directory θα πρέπει να ρυθμίσεις το οποιοδήποτε πρόγραμμα backup τρέχει σε αυτούς τους 100+ χρήστες για να καλύψει και τη δική σου εφαρμογή.

    Επειδή αυτό τον καιρό πηγαινοέρχομαι σε IT τμήμα τράπεζας, μπορώ να σου πω ότι ο κόσμος εκεί έχει πολύ σαφείς και αποκρυσταλλωμένες απόψεις για το πως θα πρέπει να αντιμετωπίζονται οι προμηθευτές οι οποίοι θέλουν να πειράζουν τα default locations, όπως είναι το App Data ....


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  09-10-2008, 01:35 45285 σε απάντηση της 45283

    Απ: 'Options' Menu!

    KelMan: σε ευχαριστω για τις καθαρες διευκρ/σεις Yesαπολυτα κατανοητος εκτος απο το οτi to Directory της εφαρμογης περνει οναμα εκεινο το "μακριναρι" δεν ειδα να μου εξιγεις η δεν το καταλαβα αν το αναφερεις που ειναι.

    Το "προβλημα ειναι" γιατι μεσα εκει η εφαρμoγη μου κανει εναν φακελο αλλα αντι να ειναι Μονο το ονομα της εχει και αυτο το "24+χαρακτηρων μακριναρει" τι ειναι αυτο, δεν ξερω και πως μπορω να το εξαφανισω?

    εφτιαξα πριν λιγο ενα παραδηγμα στο vs2008, και με το που το ετρεξα μεσα στο app data directory, ενω την εφαρμoγη μου την ειπα DemoApplication.exe ο φακελος που δημιουργηθηκε ειναι DemoApplication.exe_2jdfh75bksvlsdf84hn498shdke  κτλ.... αυτο ειναι που αναρωτιεμαι τι ειναι και γιατι το κανει? σε αλλες εφαρμογες μου δεν το κανει.....ConfusedConfused

    αλλη ερωτηση, που αρεσει το reset στις default values που εχεις δωσει αλλα δεν βλεπω να μπορεις να κανεις reset per setting που εχεις φτιαξει, αλλα μονο ολα μαζι!???

    τελος στο παραδειγμα σου πρεπει να εχω κανα import? γιατι λεει δεν αναγνωριζει τι ειναι το Dim config as Configuration

    επλιζω να μην σε ζαλισα στις ερωτησεις Embarrassed

    Panagioti: το app.data  εγω το ξερω χρονια το θεμα ειναι αν εχεις πελατη στο τηλεφωνο και θες να τον οδηγησεις εκει ψιλο χανονται αυτοι. και δεν πρεπει να ειναι ολοι οι πελατες μας IT centers, υπαρχουν και μικρο επειχηρησεις που θελω να περνω παραδειγμα το αρχειο αυτο σε ενα memmory stick που ειναι μονημα πανω, μπορω? Ειμαι απο Θεσσαλια και δουλευα χρονια εκει πριν ανεβω Θεσ/νικη το τι πελατες εχω που δεν ξερουν να κανουν αντιγραφη ενα αρχειο δεν λεγεται! τι να κανω ομως που πληρωναν και ζητουσαν αυτοι να κανουν βλακιες κι εσυ να εχεις τις ρυθμισεις και τα αρχεια του Παντα καπου αποθηκευμενα και ασφαλη!?Hmm

    καλα για sVista δεν το σχολιαζω καθολου, ασε εκει θες δε θες δεν σε "περνει" να "γραψεις" οπου θελεις ως προγραμματιστης, γιατι αρχιζουν τα msboxes να πεταγονται βροχη!!!! DevilStick out tongue

    θυμασται αυτο το σποτακι απο τα ωραια της apple? http://www.youtube.com/watch?v=MyhJZMxGf5U


    This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
  •  09-10-2008, 09:59 45292 σε απάντηση της 45285

    Απ: 'Options' Menu!

    Ναι, χρειάζεται να κάνεις Add Reference στο System.Configuration assembly.

    Ως προς το μακρυνάρι, είπαμε μπαίνει αυτόματα για λόγους security αλλά με τον κώδικα που παρέθεσα μπορείς να βρεις το path και μετά μέσω κώδικα να κάνεις copy τα settings σε κάποιο usb stick ή από κάποιο stick προς τον φάκελο.


    Vir prudens non contra ventum mingit
  •  09-10-2008, 10:57 45296 σε απάντηση της 45292

    Απ: 'Options' Menu!

    Stick out tongueΟ Μάνος απάντησε και στο πως να βγάλει τα settings του στο stick αυτός που δεν έχει ιδέα πως να τα αντιγράψει. Δεν το κάνει αυτός, το κάνεις εσύ γι αυτόν με κώδικα. Εξάλλου, ο άσχετος χρήστης είναι πολύ πιθανότερο να έχει πρόβλημα επειδή π.χ. του ζήτησες να ανοίξει όλα τα permissions στο Program Files παρά ο πιο σχετικός. Γι αυτό και δημιουργήθηκε το App Data, τα profiles και τα restrictions που υπάρχουν σε όλα αυτά τα folders. Είναι πολύ λίγοι πλέον οι πελάτες οι οποίοι δουλεύουν σε ένα PC το οποίο δεν συνδέεται πουθενά. Αν θέλεις να φτιάξεις εφαρμογές οι οποίες πρέπει να δουλέψουν σωστά σε περιβάλλον δικτύου, πρέπει να μάθεις πως δουλεύουν τα διάφορα folders στα Windows.

    Εξάλλου, και στα Vista, αν δεν κάνεις "κακά" πράγματα, δεν εμφανίζονται message boxes. Άσε που ο πελάτης, ακόμα και ο άσχετος, κάποια στιγμή θα καταλάβει ότι το πρόγραμμα κάποιου ανταγωνιστή δεν βγάζει message boxes. Και είτε θα απαιτήσει να του λύσεις το πρόβλημα, ή απλά θα σε σουτάρει χωρίς να σε πάρει και τηλέφωνο.

    Νομίζω ότι μία πρόσφατη ιστορία είναι χρήσιμη. Stick out tongue Η "Τρία Κιλά Κώδικα" είχε φτιάξει ένα πρόγραμμα για τράπεζα το οποίο είχε κάπου ξεχασμένο κώδικα ο οποίος πείραζε αρχεία στο Program Files. Όχι ότι ο Ζαχαρίας δεν ήξερε ότι αυτό ήταν λάθος, όχι ότι δεν ήθελε να αποφύγει τις φασαρίες και τα τηλεφωνήματα, αλλά όταν έχεις να διορθώσεις 5 τόνους κώδικα από αυτόν που έγραφε η Τούλα Ασχετούλα πριν αλλάξει επάγγελμα, κάποια πράγματα θα ξεφύγουν.

    Το πρόγραμμα στέλνεται στην τράπεζα για εγκατάσταση και το τμήμα του IT Operations ετοιμάζεται να το ετοιμάσει για εγκατάσταση σε 500 PC. Αυτά φυσικά δεν τα κάνουν με το χέρι, βάζουν ένα agent να κάνει μαζικά τις εγκαταστάσεις. Φαντάσου λοιπόν τη χαρά του Operations όταν την επόμενη μέρα αρχίσανε τα τηλεφωνήματα από 500 εκνευρισμένους χρήστες οι οποίοι δεν μπορούσαν να δουλέψουν, γιατί δεν μπορούσε η εφαρμογή να γράψει στο Program Files. Και καλά ο κόσμος στα καταστήματα, απλά χάθηκαν χρήματα με τις καθυστερήσεις. Έλα όμως που την εφαρμογή χρησιμοποιούσε και η γραμματέας του προέδρου?

    Ευτυχώς, έτυχε να είμαι εκεί και πρόλαβα να πάρω τηλέφωνο το Ζαχαρία για να ετοιμάσουν νέο build πρωτού το IT Operations στείλει τους ... special operators του Security (όχι το Windows Security) να κάνουν μία επίσκεψη στο Ζαχαρία. Κυριολεκτικά στην πόρτα τους προλάβαμε.

    ΚΑΙ ΟΠΟΙΟΣ ΝΟΜΙΖΕΙ ΟΤΙ Η ΠΑΡΑΠΑΝΩ ΙΣΤΟΡΙΑ ΕΙΝΑΙ ΕΝΤΕΛΩΣ ΦΑΝΤΑΣΤΙΚΗ ας ρωτήσει το Ζαχαρία.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems