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

 

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

Απ: προβολή στοιχείων από ΒΔ μέσω code behind

  •  16-03-2009, 18:44

    Απ: προβολή στοιχείων από ΒΔ μέσω code behind

    έχω δει διάφορα Posts σου, που έχουνε σχέση με εισαγωγή ανάκτηση δεδομένων από μια βάση μέσω της .Net πλατφόρμας.

    γενικά, θα πρέπει να δεις - μάθεις καλά κάποια πράγματα σχετικά με τις access data technologies-methodologies που υπάρχουνε...

    θα πρέπει να δεις γενικά αρκετά πράγματα με το ado.net

    • Πως να συνδεθείς με μια βάση χρησιμοποιώντας ΑDO.NET
    • Πως να εκτελείς sql queries Και να ανακτάς τα αποτελέσματα του query χρησιμοποιώντας ΑDO.NET
    • Πως να εμφανίζεις δεδομένα που ανάκτησες από μια βάση σε μια .aspx σελίδα
    • Πως να χειριστείς τα λάθη που (error handling mechanisms)

    σε αυτό το Link θα βρεις κάποια Videos Που εξηγούνε πως κάνεις όλα τα παραπάνω.....

    http://www.asp.net/learn/videos/

     

    επίσης ίσως η πιο καλή σειρά tutorials που υπάρχει.

    εδώ έχει όλες σχεδόν τις τεχνικές που θα χρειαστείς.

    http://www.asp.net/learn/data-access/

    και φυσικά τα πολύ ωραία Videos  που έχουνε τα παιδιά από το studentguru (στα ελληνικά και αφού γίνεις μέλος)

    http://www.studentguru.gr/learn/default.aspx

     

    Κατά την γνώμη μου πρέπει να δεις τις βασικές ado.net κλάσεις και πιο ειδικά ότι βρίσκεται κάτω από το System.Data.SqlClient namespace

    Οπωςδήποτε πρέπει να δεις τις

    • SqlConnection - περιέχει Properties Και memthods για να συνδεθείς σε μια sql server db
    • SqlCommand - εδώ μπορείς να κάνεις sql queries or stored procedures που στην ουσία είναι τα δεδομένα που θέλεις
    • SqlDatareader - εδώ είναι τα δεδομένα που "γυρνάνε" από την βάση

    γενικά με αυτή την μεθοδολογία κάνουμε το εξής

    • φτιάχνουμε ένα νέο asp.net project Στο visual studio ή visual web developer
    • Βάζουμε τα controls μας. πχ ένα Label Και ένα gridview. δεν πάει να πει ότι όλα τα controls Θα γίνουνε databound.
    • έχουμε μια βάση π.χ σε ένα Sql server Που τρέχει στο δικό μας μηχάνημα. π.χ έχεις την northwind database Που είναι attached Στο Local intance του sql server
    • ξεκινάμε ένα connection με την βάση χρησιμοποιώντας το SqlConnection object
    • Χρησιμοποιούμε ένα sql command object για να εισάγουμε το ερώτημα μας, Sql query
    • ανοίγουμε το connection με την db, εκτελούμε το ερώτημα
    • τα αποτελέσματα του query τα "δίνουμε" σε ένα sqldatareader object
    • δένουμε τα αποτελέσματα με το web server control που θέλουμε(dropdown list,gridview) και έτσι τα εμφανίζουμε στην .aspx σελίδα
    • κλείινουμε το connection

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

    εδώ ας υποθέσουμε ότι θέλεις να φέρεις δεδομένα από ένα πίνακα employees που είναι σε μια βάση στον sql server, και θέλεις να εμφανίσεις τα data σε ένα gridview control.

    ο κώδικας εδώ είναι σε c# αλλά μοιάζει πολύ με Vb.

     

    using System.Data.SqlClient;

    protected void Page_Load(object sender, EventArgs e)

    {

    if (!IsPostBack)

    {

    SqlConnection conn;

    SqlCommand comm;

    SqlDataReader reader;

    string connection;

    // εδώ απλά παίρων το connection string από το web config.

    connection = ConfigurationManager.ConnectionStrings["nksolutions"].ConnectionString;

    // Φτιάχνω ένα sql connection object

    conn = new SqlConnection(connection);

    //Φτιάχνω ένα sql command object

    comm = new SqlCommand("select employeeid,name,city,state,mobilephone from employees", conn);

    try

    {

    //Ανοίγω το connection

    conn.Open();

    // φορτώνω τα results σε ένα Sqldatareader object

    reader = comm.ExecuteReader();

    // Ορίζω ότι το gridview θα ταιστεί από το reader object

    GridView1.DataSource = reader;

    // Κάνω Bind τα δεδομένα στο gridview

    GridView1.DataBind();

    // κλείνω το reader

    reader.Close();

    }

    catch

    {

     

    Label1.Text = "error displaying the data!!!!";

    }

    finally

    {

    //κλείνω το connection

    conn.Close();

    }

    }

     

    επίσης θα πρέπει να δεις τα repeater και datalist controls

    δεν είναι φυσικά ο μόνος τρόπος να πάρεις δεδομένα αυτός από μια βάση και να τα φέρεις σε μια σελίδα

    υπάρχουνε ας πούμε ακόμα 2 τεχνικές

    1) να χρησιμοποιήσεις τα datasource controls π.χ sqldatasource. αυτά παίζουνε πολύ καλά με το gridview Και τα detailsview controls

    2) ένας άλλος τρόπος είναι να χρησιμοποιήσεις το disconnected data access model. εδώ χρησιμοποιούμε την sqldataadpater class σε συνδυασμό με τις datatable,dataview και dataset κλάσεις. με αυτό τον τρόπο φέρνεις τα δεδομένα τοπικά και να τα επεξεργαστείς χωρίς να έχεις ανοικτό το connection με την βάση.είναι ας πούμε ένα dataset ένα virtual database...ένα In memory represantation of your data

    όλοι αυτοί οι τρόποι-τεχνικές έχουνε τα υπέρ και τα κατά τους.

    μόλις τα μάθεις αυτά τότε μπορείς να δεις άλλα πράγματα όπως το entity framework και το linq to sql

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

     

     


    Νικόλαος Καντζέλης
    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
Δείτε όλες τις δημοσιεύσεις της Θεματική Ενότητας
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems