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

 

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

Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

Îåêßíçóå áðü ôï ìÝëïò pero. Τελευταία δημοσίευση από το μέλος mousi στις 15-04-2006, 18:49. Υπάρχουν 16 απαντήσεις.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  05-03-2006, 01:56 10348

    Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Αν μπορεί κάποιος ας βοηθήσει.

    Κατέβασα πρόσφατα την VB Express 2005. Αν και έχω διαβάσει αρκετά δεν έχω γράψει πραγματική εφαρμογή έως σήμερα σε .net σε αντίθεση με την VB6

    Δυσκολεύτηκα λίγο να καταλάβω πως συνδεόμαστε με βάσεις δεδομένων σε σχέση πε τις παλαιότερες εκδοσεις, τελικά είναι΄απ'ότι φαίνεται αρκετά απλό.

    Αφού αποφάσισα να γράψω μια μικρή εφαρμογή που ετοιμάζω σε .net, κατέβασα από την online βοήθεια κάποια βοηθητικά άρθρα για να συνδεθώ με access.

    Τα άρθρα είναι συνέχειες και έχουν τίτλο, "Storing and Accessing Data","Creating Youe First Database", "Getting the information You Need:Connecting to an Existing Database", " Showing Information to the User: Displaying Data in Your User Interface" και "Adding or Modifying Your Records: Updating Data"

    Έτσι αφού έφτιαξα ένα DataSet στο Datasource, με έναν πίνακα μέσα (με ένα μόνο πεδίο το οποίο είναι και πρωτεύων κλειδί), έσυρα απλά (και χαζά) τον πίνακα στην φόρμα, δημιουργόντας -ώ του θαύματος -ένα DataGridView και ένα BindingNavigator. Απλά φαίνονταν όλα, και πρόσθεσα στο FormClose event Της Φόρμας τον κάτωθι κώδικα  :

    '*******************************************

    Try

    Me.Validate()

    Me.ΒιβλίοBindingSource.EndEdit()

    Me.ΒιβλίοTableAdapter.Update(Me.ApodrashDataSet.Βιβλίο)

    Catch ex As DataException

    MsgBox("Δεν ενημερώθηκε η Βάση Δεδομένων")

    End Try

    '**********************************************

    Άλλαξα αντίστοιχα τον κώδικα και στο save item Του BindingNavigator.΄

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

    Αν μπορείας βοηθήσει κάποιος.

    Ευχαριστώ

  •  05-03-2006, 04:03 10350 σε απάντηση της 10348

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Κάνε πρώτα AcceptChanges στο DataSet και μετά Update..Επίσης το Me.Validate() και το Me.BiblioBindingSource.EndInit() δεν χρειάζονται.. Άλλωστε το EndInit δεν έχει καμία απολύτως χρήση στο σημείο αυτό, καθώς έχει κληθεί κατα την διάρκεια του InitializeComponent() (όταν "φτιαχνότανε" δλδ η φόρμα).

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  05-03-2006, 09:04 10351 σε απάντηση της 10350

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Αυτό που έχεις γράψει φαίνεται σωστό. Έγραψες ότι άλλαξες τον κώδικα στο save item του BindingNavigator. Γιατί; Τι διαφορετικό υπήρχε εκεί; Θα έπρεπε να τον αφήσεις ως είχε και να έβαζες αυτόν των κώδικα στο Close της φόρμας.

    Λέγοντας ότι αυτό που έχεις γράψει φαίνεται σωστό εννοώ ότι ναι πρέπει να καλέσεις μία Update ενώς TableAdapter κτλ. Άλλα ίσως να έχει γίνει κάποιο λάθος στο datasource στο οποίο αναφέρεται το update.

    Η συμβουλή μου είναι να τα σβήσεις όλα από την φόρμα να ξανακάνεις την όλη διαδικασία και να δεις στο save button του DataNavigator τι κώδικας έχει μπει. Πίστεψε με θα είναι ο σωστός και σωστά γραμμένος.
  •  05-03-2006, 10:57 10352 σε απάντηση της 10351

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Τα έχω σβήσει όλα και τα έχω ξανακάνει πάνω από 10 φορές, προσέχοντας κάθε λεπτομέρεια που μπορώ.

    Ο κώδικας που ήταν στο save item είναι ο ίδιος με αυτόν που γράφει στν on-line βοήθεια που τύπωσα, η δική μου προσθήκη και στα δύο σημεία ήταν η παγίδευση σφάλματος για να βεβαιωθώ ότι ο συγκεκριμένος κώδικας εκτελείται, μάλιστα στην αρχή έβασα και ένα messagebox ακριβώς πριν το exception ώστε να βεβαιωθώ ότι περνάει σωστά όλος ο κώδικας μέχρι εκείνο το σημείο στην συνέχεια μου φάνηκε περιτή αυτή η πληροφορία σε  πραγματικό περιβάλλον (ως αυτονόητη) και την αφαίρεσα.

    Στην VB.net 2003 Standart Edition -με διαφορετικές διαδικασίες που εδώ δεν δουλεύουν-δεν είχα τέτοια προβλήματα. Θα μπορούσα να το φτιάξω στο 2003 και μετά να αναβαθμισω τον κώδικα σε 2005, αλλά αυτό δεν είναι λύση με μέλλον.

  •  05-03-2006, 11:03 10353 σε απάντηση της 10350

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Αν κατάλαβα καλά όσα είπες διαμόρφωσα τον κώδικα ως εξής :

    Try

    Me.TableXDataSet.AcceptChanges()

    Me.Validate()

    Me.ΒιβλίοBindingSource.EndEdit()

    Me.ΒιβλίοTableAdapter.Update(Me.ApodrashDataSet.Βιβλίο)

    Catch ex As DataException

    MsgBox("Δεν ενημερώθηκε η Βάση Δεδομένων")

    End Try

    Αλλά ούτε έτσι φάνηκε να δουλεύει.

  •  05-03-2006, 11:08 10354 σε απάντηση της 10352

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Χμ ενδιαφέρων ακούγεται τότε. Πάντως ο κώδικας είναι σωστός που έχεις εδώ. Ίσως θα πρέπει να αναζητήσουμε το πρόβλημα κάπου αλλού. Δύο ερωτήσεις.
    1. Όταν πατάς το save του DataNavigator τότε όλα είναι εντάξει;
    2. Την συγκεκριμένη φόρμα την καλείς με Show ή ShowDialog;

    Αν την καλείς με τον δεύτερο τρόπο πως την κλείνεις; Πατάς το Χ πάνω δεξιά; Ή έχεις βάλει κάποιο κουμπί που γράφεις κώδικα; Έχω μία υποψία για τα τελευταία που σε ρωτάω δεδομένου πως τον παραπάνω κώδικα τον έχεις βάλει στο Close event της φόρμας.
  •  05-03-2006, 11:13 10355 σε απάντηση της 10354

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Συγνώμη για το τελευταίο μου post. Λέγοντας ο κώδικας που έχεις γράψει είναι σωστός αναφέρομαι στον αρχικό σου. Όχι στο τελευταίο σου post. Αυτός είναι λάθος. Ποτέ δεν καλείς το AcceptChanges. Αν το κάνεις αυτό τότε δεν υπάρχει ελπίδα να κάνεις save στην database της αλλαγές σου.
  •  05-03-2006, 14:46 10360 σε απάντηση της 10348

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Surprise [:O] Σε εμένα πάντως, μια χαρά δουλεύει αν κάνεις και AcceptChanges..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  05-03-2006, 15:29 10361 σε απάντηση της 10360

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Αν καλέσεις την AcceptChanges πριν καλέσεις την update τότε δεν θα γίνει καμία αλλαγή στην βάση διότι θα αλλάξει το RowState σε όλες τις εγγραφές του DataTable αν καλείς την update σε DataTable level.

    Προσωπικά απορώ πως σου δούλεψε το παραπάνω αν έχεις καλέσει την μέθοδο AcceptChanges πριν καλέσεις την Update.
  •  05-03-2006, 21:24 10368 σε απάντηση της 10354

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    1 Ὀχι ΔΕΝ είναι εντάξει. (Δυστυχώς)

    2. Μετά τις πρώτες αποτυχίες αυτή είναι η μοναδική φόρμα της εφαρμογής. Απόφυγα να κάνω οτιδήποτε άλλο ώστε να εστιάσω στο θέμα μου. Η φόρμα είναι η μόνη άρα και η default φόρμα δεν την καλώ εγώ με κανέναν τρόπο ούτε έχω γράψει κώδικα για έξοδο από αυτήν. Κλέινω την εφαρμογή με απλό Χ πάνω δεξιά.

  •  05-03-2006, 22:00 10369 σε απάντηση της 10368

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Οπότε στο πρώτο μου ερώτημα απάντησες αρνητικά. Δυσκολεύουν τα πράγματα στο να καταλάβω τι ακριβώς θα μπορούσε να συμβαίνει. Βέβαια θα μπορούσαμε να ψάξουμε σε αρκετά σημεία για να δούμε τι μπορεί να πηγαίνει στραβά, κανονικά όμως δεν θα έπρεπε να σε ταλαιπωρεί τόσο πολύ.

    Μην απελπίζεσαι το κάνεις σωστά απλά κάτι, για κάποιο λόγο δεν κάθεται σωστά, δεν νομίζω όμως να πρόκειται από δικό σου λάθος. Αν θέλεις στείλε μου σε παρακαλώ το project σου να του ρίξω μία ματιά. Μου αρέσει πολύ να ασχολούμαι με τέτοια προβλήματα οπότε δεν θα είναι κόπος για μένα.
  •  06-03-2006, 19:22 10374 σε απάντηση της 10348

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    infoCENTER: My bad.. ξέχασα οτι κάνω parse με κώδικα (λογου του οτι το DataSet φτιάχνετε εχει JOINned tables..)..Είχα απλά στο μυαλό μου το DataSet σαν DataSet και όχι ολη την διαδικασία του pero για να κάνει update..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  10-03-2006, 16:44 10561 σε απάντηση της 10348

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    To provlima sou einai sto arxeio tis access pou kainei 'Copy Always' sto output directory otan trexeis thn efarmogh sou. Valto sto Copy If newer.

    Signwmi pou grafw greeklish alla eimai eksoteriko kai den exw ellinika sto pc.
    γροικάσε μπάρμπα τ' αρνάκια!!
  •  12-03-2006, 23:32 10593 σε απάντηση της 10561

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Πριν τρέξεις το Update στο Dataset έλεγξε εάν το HasChanges σου επιστρέφει true η false .
    Ιωάννης Μανουσάκης
  •  13-03-2006, 11:50 10599 σε απάντηση της 10593

    Απ: Αδυναμία ενημέρωσης της Βάσης Δεδομένων Βοήθεια.!!!

    Παιδιά σας ευχαριστώ όλους όσους προσφερθήκατε να βοηθήσετε.

    Το πρόβλημα ευτυχώς λύθηκε. Στηην πραγματικότητα δεν υπήρξε ποτέ. Απλά είχα άγνοια του γεγονότος ότι όταν "έτρεχἁ" την εφαρμογή, μέσα από το περιβάλλον της .net δεν έκανε καμμιά αλλαγή στην βάση. Όταν έκαν Build την εφαρμογή και έτρεξα το εκτελέσιμο αρχείο, όλα δούλεψαν κανονικά.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems