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

 

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

Row versions

Îåêßíçóå áðü ôï ìÝëïò fterotos. Τελευταία δημοσίευση από το μέλος fterotos στις 03-04-2006, 20:42. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-04-2006, 20:54 11457

    Row versions

    Δεν μπορώ να δω τα original και current version ενός column που άλλαξα σε ένα dataset.
    Κάνω τα παρακάτω μέσα σε ένα update button event :

     DataSet11.Categories(0).CategoryName = "New Name"

    Dim dr As DataRow = DataSet11.Tables("Categories").Rows(0)

      SqlDataAdapter1.Update(DataSet11, "Categories")

     Label1.Text = "current" & dr("CategoryName", DataRowVersion.Current)
     Label2.Text = "current" & dr("CategoryName", DataRowVersion.Original)


    τα 2 labels μου βγαίνουν ίδια.Κάνω κάτι σε λάθος σειρά?

    Πως να δω τα original και current version ενός column?
  •  01-04-2006, 21:26 11458 σε απάντηση της 11457

    Απ: Row versions

    Το original version αναφέρεται στις τιμές των πεδίων τη στιγμή που διαβάστηκαν από τη βάση. Το current version αναφέρεται στην τρέχουσα τιμή μετά τις τροποποιήσεις του χρήστη. Από τη στιγμή όμως που κάνεις update και δεν έχει γίνει έπειτα κάποα αλλαγή, το original version είναι αυτό που έστειλες στη βάση το οποίο συμπίπτει βέβαια με το current.

    Το rowstate rowversion έχει νόημα να το κοιτάς πριν στείλεις τα δεδομένα στη βάση. Από τη στιγμή που θα τα πιάσει ο adapter και θα κάνει το update, θα πετάξει την προηγούμενη παλιά original version γιατί είναι άχρηστη πλέον.

    Αυτά είναι η default συμπεριφορές. Υπάρχουν τρόποι να τα αλλάξεις, αλλά σε γενικές γραμμές μάλλον δεν είναι σωστό και είναι αρκετά advanced.


    Χρήστος Γεωργακόπουλος
  •  01-04-2006, 21:27 11459 σε απάντηση της 11458

    Απ: Row versions

    Row vesrion εννοούσα στην δεύτερη παράγραφο....
    Χρήστος Γεωργακόπουλος
  •  02-04-2006, 04:09 11469 σε απάντηση της 11459

    Απ: Row versions

    Για να συμπληρώσω αυτό που έγραψε με απλά λόγια ο cgeo προς μία κατεύθυνση πιο κοντά στο .NET διάβασε για την AcceptChanges την οποία καλεί αυτόματα το Update. Εκεί θα καταλάβεις γιατί σου επιστρέφονται ίδιες τιμές.
  •  02-04-2006, 12:23 11472 σε απάντηση της 11457

    Απ: Row versions

    ΟΚ κατάλαβα.

    Αλλά ακόμα και όταν δεν κάνω update μου βγαίνουν τα ίδια.Υποθέτω τώρα δεν παίρνει την αλλαγή που κάνω:



    DataSet11.Categories(0).CategoryName = "New Name"



    Dim dr As DataRow = DataSet11.Tables("Categories").Rows(0)



    Label1.Text = "current" & dr("CategoryName", DataRowVersion.Current)

    Label2.Text = "current" & dr("CategoryName", DataRowVersion.Original)



    Μου εμφανίζει αυτά που φέρνει από την βάση την πρωτη φορά.

  •  02-04-2006, 12:44 11473 σε απάντηση της 11472

    Απ: Row versions

    Το γέμισες το dataset από τη βάση; ή και την προηγούμενη τιμή την είχες καρφώσει με το χέρι; Γιατί σε αυτή την περίπτωση η παλιά τιμή δεν πάει στο original version αλλά απλά χάνεται. Κοίτα αυτό:

    Dim NewRow As Dataset1.CategoriesRow
    NewRow = Dataset11.Categories.NewCategoriesRow
    NewRow.CategoryName = "Old name"
    Dataset11.Categories.AddCategoriesRow(NewRow)

    Dataset11.AcceptChanges()

    Dataset11.Categories(0).CategoryName = "New Name"
    Dim dr As DataRow = Dataset11.Tables("Categories").Rows(0)
    Label1.Text = "current" & dr("CategoryName", DataRowVersion.Current)
    Label2.Text = "current" & dr("CategoryName", DataRowVersion.Original)

    Εδώ γεμίσω το dataset με το χέρι, αλλά στο acceptchanges το dataset θα είναι σαν να το πήρα από τη βάση (δηλαδή η τιμή που έδωσα στο field θα πάει manualy να κάτσει στο original version). Το ίδιο αποτέλεσμα θα έχεις αν το γεμίσεις με select, η τιμή θα σου έρθει στο original version.


    Χρήστος Γεωργακόπουλος
  •  03-04-2006, 20:42 11522 σε απάντηση της 11457

    Απ: Row versions

    ok

    Ευχαριστώ πολύ!!!

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems