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

 

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

Αντικατάσταση μίας ROW από μία άλλη σε Access

Îåêßíçóå áðü ôï ìÝëïò kostasdiktia. Τελευταία δημοσίευση από το μέλος kostasdiktia στις 19-05-2006, 13:53. Υπάρχουν 15 απαντήσεις.
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  21-02-2006, 18:37 9926

    Αντικατάσταση μίας ROW από μία άλλη σε Access

    Γεια σας παιδιά,

    έχω φτιάξει μία application που συνδέεται με database του Access (με OleDbConnection) και εκτελεί διεργασίες Δημιουργίας νέας Row αλλά και Διαγραφής κάποιας υπάρχουσας..

    Θέλω να προσθέσω άλλη μία, αυτή της αντικατάστασης, στην τάδε position του table αντικατέστησε την παρούσα row με μία άλλη που σου δίνω! Πως μπορώ να το υλοποιήσω?

    Θενκς προκαταβολικά..


    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  22-02-2006, 13:34 9963 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Άν κατάλαβα, θέλεις την σύνταξη της Update Command? Δηλαδή το Primary Key Field μένει αμετάβλητο?

    Διευκρίνησε σε παρακαλώ αν τα δεδομένα τα χειρίζεσαι μέσω dataSet ή απευθείας με Commands πάνω στο OleDbConnection, για να μπορέσω να σε βοηθήσω με περισσότερη σαφήνεια.
  •  22-02-2006, 13:44 9966 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Έχω ένα dataset Isap2..με την παρακάτω line code δημιουργώ μία καινούργια row!

    Isap2.Trena.AddTrenaRow(date3, problem.Text, type.Text, key, n1.Text, n2.Text, n3.Text, n4.Text, n5.Text, n6.Text, kwdikos.Text, vlavi.Text, sign.Text, date1, replace.Text, date2, workers.Text)

    Τώρα..με ποια εντολή, αφού έχω την θέση μίας row μπορώ να την αντικαταστήσω με κάποια άλλη? Την update πρέπει να χρησιμοποιήσω?


    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  22-02-2006, 14:31 9974 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Μπορείς να δουλέψεις με τις functions του dataSet,π.χ.

    int rowIndex=5; //Εδώ δίνεις την position
    System.Data.DataRow dr = Isap2.Trena.NewRow();
    object[] newValues = new object[Isap2.Trena.Columns.Count];
    newValues[0]=date3;
    newValues[1]=problem.Text;
    .
    .
    .
    .
    dr.ItemArray = newValues;
    Isap2.Trena.Rows.InsertAt(dr,rowIndex);
    Isap2.Trena.Rows[rowIndex+1].Delete();
    //Έχουν κατέβει όλες οι γραμμές κατά μία

    Προσπάθησα να χρησιμοποιήσω τις δικές σου μεταβλητές, για αυτό ενδέχεται να έχω κάνει κάποιο λαθάκι στην σύνταξη.
  •  22-02-2006, 15:04 9977 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Μπράβο την insert έψαχνα..Yes [Y]! Την ίδια σκέψη είχα κάνει και εγώ! Ευχαριστώ πολύ! Θα το δοκιμάσω..εάν έχω κάποιο πρόβλημα..θα κάνω νέο post εδώBig Smile [:D]!
    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  22-02-2006, 21:16 9999 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Dim dr As System.Data.DataRow = Isap2.Trena.NewRow()

    dr.Item("Date") = ComboBox8.Text & "-" & ComboBox9.Text & "-" & ComboBox10.Text
    dr.Item("Name") = problem.Text
    dr.Item("Type") = type.Text
    dr.Item("Key") = keybox.Text
    dr.Item("N1") = n1.Text
    dr.Item("N2") = n2.Text
    dr.Item("N3") = n3.Text
    dr.Item("N4") = n4.Text
    dr.Item("N5") = n5.Text
    dr.Item("N6") = n6.Text
    dr.Item("Code") = kwdikos.Text
    dr.Item("Vlavi") = vlavi.Text
    dr.Item("Sign") = sign.Text
    dr.Item("DateInput") = ComboBox2.Text & "-" & ComboBox3.Text & "-" & ComboBox4.Text
    dr.Item("Replace") = replace.Text
    dr.Item("DateExit") = ComboBox5.Text & "-" & ComboBox6.Text & "-" & ComboBox7.Text
    dr.Item("Workers") = workers.Text

    Isap2.Trena.Rows.InsertAt(dr, Me.BindingContext(Isap2, "Trena").Position)

    OleDbDataAdapter1.Update(Isap2)

    Με τον παραπάνω κώδικα (χωρις να διαγράφω την παρούσα καταχώρηση!) μου αποθηκεύει την νέα row στο τέλος (όποια και αν είναι η position)!!! Τι φταίει? Μπορεί να διακρίνει κανείς τίποτα?
    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  22-02-2006, 22:01 10002 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Τι εννοείς "στο τέλος"; Ως τελεταία εγγραφή που φαίνεται στο Grid;
    Vir prudens non contra ventum mingit
  •  23-02-2006, 01:55 10019 σε απάντηση της 10002

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Ναι αυτό εννοώ..sorry για την ασάφεια..βλέπετε να υπάρχει κάπου πρόβλημα?
    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  23-02-2006, 08:10 10020 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Κοίταξε μήπως το έχεις το Primary Key Field δηλωμένο ως AutoNumber.
  •  23-02-2006, 08:58 10022 σε απάντηση της 10020

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Τυπικά (γιατί μπορείς να το αλλάξεις αλλά ενδέχεται να μην το έχεις κάνει) κάθε φορά που κάνεις Update το Dataset, τότε οι εγγραφές σου παίρνουν τις τιμές που έχουν στη βάση. Η σειρά που στα κάνει display είναι η σειρά με την οποία τα φέρνει το SELECT στο οποίο βασίζεται ο DataAdapter. Αυτό μπορείς να το αλλάξεις βάζοντας SORT clause στο SELECT. Εναλλακτικά, μπορείς να κάνεις bind το DataGrid πάνω σε ένα DataView και όχι πάνω στο DataTable ώστε να μπορείς να ελέγχεις δυναμικά τον τρόπο που θα ταξινομηθούν οι εγγραφές.


    Vir prudens non contra ventum mingit
  •  23-02-2006, 10:33 10033 σε απάντηση της 10020

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Πως μπορώ να αλλάξω το Autonumber του Primary Key Field? Δεν κατάλαβα και πολύ τι κάνω λάθος Μάνο, μπορεί να μου το εξηγήσεις λίγο πιο αναλυτικά (sorry)?

    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  23-02-2006, 18:00 10058 σε απάντηση της 10033

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Δεν κάνεις κάτι λάθος, απλά έτσι είναι η συμπεριφορά του DataGrid. Αυτό που μπορείς να κάνεις, αν θέλεις τα data σου sorted με κάποιον συγκεκριμένο τρόπο είναι να βάλεις ένα ORDER BY στο SELECT ή με λίγο κώδικα παραπάνω (γίνεται και από τον designer) να βάλεις ως DataSource του DataGrid ένα DataView object. Η δεύτερη λύση έχει το πλεονέκτημα ότι κατόπιν μπορείς δυναμικά κατά το runtime να αλλάζεις τον τρόπο που ταξινομούνται τα δεδομένα.


    Vir prudens non contra ventum mingit
  •  24-02-2006, 02:58 10069 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Μμμ...θα κοιτάξω μπας και γίνει τίποτα με το ORDER BY, αλλιώς by the best way (by code Big Smile [:D])! Ελπίζω να βρώ άκρη..Thanx..
    No knowledge can be certain, if it is not based
    upon mathematics or upon some other knowledge
    which is itself based upon the mathematical
    sciences.
  •  17-05-2006, 20:25 12884 σε απάντηση της 9926

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Μάλλον καλύτερα θα κάνεις να φτιάξεις μία update. Η οποία θα βρίσκει την εγγραφή με το Primary Κey (index πεδίο ή κλειδί), ή και το row index και θα κάνει update όλλα τα πεδία εκτός του Primary Κey.

    Έτσι και λογικά αλλά και εμφανισιακά θα αλλάζεις τις τιμές τις εγγραφής που θέλεις.

    ΥΓ για να βρείς μία εγγραφή με κάποιο κλειδί υπάρχει η .Find("keyvalue"), πρώτα όμως θέλει να δηλώσεις τα πεδία που αποτελούν το κλειδί κάνοντας .PrimaryKey = new DataColumn() {myDataTable.Columns("keyfield")}

    Καλύ τύχη


    Marios Margaritis
    Software Architect & IT Consultant
    theWorks
  •  18-05-2006, 20:19 12951 σε απάντηση της 12884

    Απ: Αντικατάσταση μίας ROW από μία άλλη σε Access

    Αν κατάλαβα καλά θέλεις να αλλάξεις τις τιμές των πεδίων μίας εγγραφής σε ένα dataset με κάποιες άλλες τιμές. Πρόσεξα επίσης ότι χρησιμοποιείς DataBinding. Σε ποιο .ΝΕΤ Framework δουλεύεις;

    Η InsertAt δεν κάνει αυτό που ζητάς αφού περνάει μία νέα εγραφή μέσα στο dataset στην θέση που θέλεις. Αυτό που κατάλαβα εγώ είναι να αντικαταστήσεις μία εγγραφή.

    Αυτό που μπορείς να κάνεις είναι να βρεις την εγγραφή που σε ενδιαφέρει μέσα στο dataset με τις μεθόδους που περιγράφονται παραπάνω και να διορθώσεις τις τιμές των πεδίων μέσα στο datatable αντί να περάσεις μία νέα row που θα αντικαταστήσει μία άλλη (μπορώ να σου γράψω ένα μικρό κόμματι κώδικα για αυτό αν θες). Αν χρησιμοποιείς Framework έκδοσης 2.0 τότε η μέθοδος που ψάχνεις είναι η LoadDataRow.
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems