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

 

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

Ερώτημα σε σχέση με sql και aspx σελίδα

Îåêßíçóå áðü ôï ìÝëïò epp1123. Τελευταία δημοσίευση από το μέλος nikolaosk στις 04-04-2009, 00:19. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-04-2009, 23:03 49783

    Ερώτημα σε σχέση με sql και aspx σελίδα

    Καλησπέρα σας δεσποινίδες κύριοι και μικρά παιδιά. Έχω μία ερώτηση σχετικά με το πως θα συντάξω ένα sql ερώτημα, καθώς χρησιμοποιώ μία aspx σελίδα και πατώντας submit. Αλλά ας τα πάρουμε από την αρχή:

    Έχω ένα πίνακα με τα εξής πεδία.
    1. Track_ID
    2. Track_Number
    3. Track_Title
    4. Album_Where_The_Track_Belongs
    5. Artist_of_The_Album.
    Και μέσα στην aspx σελίδα έχω textboxes όπου βάζω τα tracks του album. Η αρίθμιση γίνεται αυτόματα. Δηλαδή το πρώτο textbox είναι το track 1 και τα σχετικά. Αφού γράφω όλα τα στοιχεία του δίσκου, έρχεται η ώρα να πατήσω υποβολή και να περάσουν τα δεδομένα στη βάση. Πως θα χτιστεί αυτό το insert ερώτημα που θα πάρει τα tracks , και θα τα περάσει στη βάση, το ένα κάτω από το άλλο, και τα υπολοιπα πεδία, δηλαδή album και καλλιτέχνης θα μπουν μία φορά. Οταν λέω το ένα κάτω από το άλλο έτσι όπως βλέπουμε τον πίνακα.

    Ευχαριστώ.
  •  02-04-2009, 09:27 49788 σε απάντηση της 49783

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Καλημέρα.

    Νομίζω πως θα πρέπει να ασχοληθείς πρώτα με το σχεδιασμό της βάσης σου π.χ.
    Ξεχωριστός πίνακας: Album
    Ξεχωριστός πίνακας: Artists
    Ξεχωριστός πίνακας: Tracks
    κ.λπ.

    Μετά θα σου πρότεινα να χρησιμοποιήσεις GridView με Insert/Edit enabled...
  •  02-04-2009, 13:04 49795 σε απάντηση της 49788

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Ναι καλά ότι αυτοί θα είναι οι πίνακες είναι το μόνο σίγουρο. Επίτηδες δεν αναφέρω gridview formview κτλ. Έστω ότι το κάνουμε όλο "με το χέρι". Εκεί είναι το θέμα.
  •  02-04-2009, 16:08 49800 σε απάντηση της 49795

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Aν κατάλαβα σωστά, θα πρέπει να κάνεις εναν πίνακα για τα tracks όπου θα κρατάς το trackid, trackname, .... και τα id των αλμπουμ, καλλιτεχνών και ότι άλλο θες τα οποία θα τα έχεις σε άλλους πίνακες. Οπότε αν θες μόνο το track , το αλμπουμ και τον artist, λογικά θα κάνεις 3 quiria που θα  ενημερώνεις τον κάθε πίνακα ξεχωριστά... Ίσως υπάρχει και συντομότερος τρόπος, τα σα'ί'νια του φορουμ θα μας ενημερώσουν :D
  •  02-04-2009, 23:39 49816 σε απάντηση της 49800

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Για να καταλάβουμε καλύτερα ποιό ακριβώς είναι το ερώτημα, να κάνω μερικές υποθέσεις:

    1. Θέλεις βοήθεια στο σχεδιασμό των πινάκων στους οποίους θα αποθηκεύεις τα δεδομένα, και κατόπιν στα queries που θα κάνουν αυτή την αποθήκευση

    2. Εχεις υπόψη σου ήδη το σχεδιασμό των πινάκων και θέλεις βοήθεια στα queries που θα κάνουν την αποθήκευση

    3. Ξέρεις τη δομή των πινάκων ΚΑΙ τα queries, και αναρωτιέσαι πώς θα κρατάς απλά τα primary keys των νεοεισαχθέντων εγγραφών από τον ένα πίνακα για να τα περάσεις στον άλλον (π.χ. για να περάσεις τραγούδια σε ένα album, πρέπει να έχεις το primary key value του νεοεισαχθέντος album).

    4. Εχεις λύση για όλα τα παραπάνω και θέλεις βοήθεια στα προβλήματα που θα προκύψουν ενδεχομένως με τα δεδομένα (π.χ. τι γίνεται αν ο καλλιτέχνης που καταχωρείς υπάρχει ήδη στη βάση - οπου και προκύτπουν άλλα ερωτήματα: Τον διαλέγεις από dropdown, ή τον πληκτρολογείς; κλπ.)

    Ποιό από τα 4 ειναι πιό κοντά στο δικό σου ερώτημα;

     

     

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  02-04-2009, 23:56 49818 σε απάντηση της 49816

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Σκέψου cap το εξής. Έχεις 10 textboxes πχ. Εκεί μπαίνουν τα ονόματα των τραγουδιών. Πατάς το submit και θες αυτά να αποθηκευτούν και τα 10 τραγούδια στο πίνακα. Μπορείς να χτίσεις ένα query, ή χρειάζονται πολλά, για να αποθηκευτούν και τα 10 τραγούδια με ένα πάτημα του submit. Και μετά να δεις το table και να δεις τα τραγούδια κανονικά το ένα κάτω από το άλλο στο πίνακα. Αυτό που θέλω να μάθω είναι

    1. Αν θέλει ένα query ή πολλά;
    2. Ποιο είναι αυτό το query ή τα πολλά τα query; Πως το γράφεις.

    Πχ είναι λύση, να κάνεις 10 insert,  ένα για κάθε track, χρησιμοποιούντας  κάποιας μορφή loop που θα κάνει 10 φορές insert, ή να κάνεις όλα αυτά τα queries add στο table adapter;
    Πχ είναι η λύση ένα stored procedure;
  •  03-04-2009, 00:17 49819 σε απάντηση της 49818

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Αρα αν καταλαβαίνω καλά κανένα από τα 4 δεν είναι ακριβώς κοντά σε αυτό που σε προβληματίζει. Αν και υποψιάζομαι οτι θα έχεις και άλλα θέματα όπως αυτά που περιέγραψα, ας δεχτούμε για την παρούσα ερώτηση οτι έχεις απλά ένα πίνακα τραγουδιών (χωρίς συσχετίσεις λοιπόν με καλλιτέχνες, αλμπουμ κλπ) και ρωτάς ποιός είναι ο βέλτιστος τρόπος για να εισαχθούν πολλαπλές εγγραφές στον πίνακα αυτό σε μία κίνηση.

    Μπορώ να σκεφτώ τις εξής πιθανές ενέργειες (και βεβαίως υπάρχουν και άλλες, ας μας πούν και άλλοι συνάδελφοι):

    1. Με ένα loop εκτελείς 10 διαδοχικά insert queries, text ή καλώντας ένα stored procedure που κάθε φορά κάνει insert ένα row. Δεν σου εγγυάται κανείς οτι θα περάσουν όλα, αν π.χ. στο ενδιάμεσο σκάσει η σύνδεση με τον sql server σου ή κάτι άλλο. Δέχεσαι οτι σε περίπτωση που πάνε όλα στραβά μπορεί να περάσουν τα 4 και τα άλλα 6 οχι.

    2. Κάνεις concatenate όλα τα τραγούδια σε ένα delimited string και τα περνάς ως παράμετρο σε μια stored procedure η οποία με κάποιον έξυπνο τρόπο τα αποσυναρμολογεί και τρέχει τα inserts μέσα σε transaction έτσι ωστε να μην αντιμετωπίσεις θέματα. Η δυσκολία αυτού του εγχειρήματος βέβαια αυξάνεται αν εκτος από τον τίτλο του τραγουδιού έχεις να περάσεις και άλλα data, όπως π.χ. διάρκειες.

    3. Με ένα loop δημιουργείς τα insert queries που χρειάζεσαι και τα κάνεις enlist σε ένα ado.net transaction για να τα περάσεις στη βάση. Δες εδώ σχετικά: http://www.codeproject.com/KB/database/transactions.aspx

    Για το αν είναι αποτελεσματικός τρόπος να προσθέσεις queries στο tableadapter, δεν γνωρίζω (αλλά και δεν νομίζω).


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  03-04-2009, 00:27 49820 σε απάντηση της 49819

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Μάλιστα, χίλια ευχαριστώ. Κάτι τέτοιο ήθελα να διαβάσω. Είχα κάποιες υπόννοιες αλλά αλλιώς είναι να έχεις μία άποψη και από έναν πιο έμπειρο. Ευχαριστώ και πάλι. Και μία τελευταία ερώτηση, ουσιαστικότατη. εσύ ποιον τρόπο προτείνεις και γιατί; Κρατάμε αυτό το απλό παράδειγμα.
  •  03-04-2009, 00:36 49821 σε απάντηση της 49820

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Βασιζόμενος και πάλι σε κάποιες υποθέσεις, όπως:

    - Οτι οι επιδόσεις δεν παίζουν σημαντικό ρόλο, δεδομένου οτι η καταχώρηση θα γίνεται σπανιότερα από τις ανακτήσεις (αν πρόκειται για administration interface ειδικά, θα γίνονται από έναν ως μερικούς χρήστες, οπότε ακόμα πιό μικρό ρόλο στις επιδόσεις θα παίξει)

    - Οτι δεν καιγόμαστε για την περίπτωση που κάτι "σκάσει" - δεν είναι τραπεζικό software!

    θα επέλεγα τα 10 διαδοχικά inserts, ίσως με τη χρήση μιας stored procedure που θα εισάγει ένα record τη φορά, ή με την κλήση μιας μεθόδου στον tableadapter. Αν ήθελα transactions, θα πήγαινα στο ίδιο σενάριο αλλά με ado.net transaction.

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


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  03-04-2009, 09:17 49822 σε απάντηση της 49821

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Βέβαια, μπορείς πάντοτε να γεμίσεις ένα DataTable από ένα DataSet και κατόπιν να κάνεις Update το DataSet μέσα σε ένα transaction. Πιστεύω ότι είναι η πιο απλή λύση.


    Vir prudens non contra ventum mingit
  •  03-04-2009, 09:24 49823 σε απάντηση της 49822

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

    Ναι, όντως. Απλά δεν έχω παίξει σχεδόν ποτέ (δεν έχει χρειαστεί / συμβεί) με updates απευθείας από datasets, οπότε είπα να μην αναφέρω κάτι για το οποίο δεν είμαι σιγουρος οτι γνωριζω :) Ειναι όμως και αυτή μια από τις πιό γρήγορες επιλογές.



    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  04-04-2009, 00:19 49856 σε απάντηση της 49783

    Απ: Ερώτημα σε σχέση με sql και aspx σελίδα

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

    http://www.evolutility.org/Chinook/Artist.aspx

    εδώ έχουνε χτίσει με το evolutility (που είναι ένα Open source framework βασισμένο σε asp.net Και sql server)

    μια εφαρμογή που έχει σαν βάση μια βάση δεδομένων που το σχήμα της μπορείς να δεις εδώ

    http://chinookdatabase.codeplex.com/Wiki/View.aspx?title=Chinook_Schema&referringTitle=Home

    νομίζω ότι είναι πολύ κοντά σε αυτό που θες.

    με το evolutility δεν χρειάζεται να γράψεις κώδικα...

    μπορείς να κατεβάσεις το Open source framework Και να δεις την λειτουργία του. αλλιώς μπορείς να δεις λίγο από τα παραπάνω Links το UI , to database schema....


    Νικόλαος Καντζέλης
    BSc, MSc, MCAS, MCPD, MCITP, MCTS,MCP, MCT
    http://www.nksolutions.gr
    http://dotnetstories.wordpress.com
    http://weblogs.asp.net/dotnetstories
    http://forum.dotnetnuke.gr
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems