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

 

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

ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

Îåêßíçóå áðü ôï ìÝëïò morfeus. Τελευταία δημοσίευση από το μέλος morfeus στις 30-03-2009, 00:39. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  27-03-2009, 19:56 49655

    ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

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



     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim connString As String = "server=THANOS\SQLEXPRESS;database=eshop2;Trusted_Connection=yes"
            Dim conn As SqlConnection = New SqlConnection(connString)
            Try

                Dim a = TextBox1.Text
                Dim b = TextBox2.Text
                Dim c = TextBox3.Text
              

                If (a = "") And (b = "") And (c = "") Then

                    Dim sql As String = "SELECT * FROM CUSTOMER"
                    Dim command As SqlCommand = New SqlCommand(sql, conn)
                    conn.Open()
                    Dim ok As String = command.ExecuteScalar()

                End If
                conn.Close()

            Catch ex As Exception
                MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Report exception.
            End Try
        End Sub
  •  28-03-2009, 02:07 49659 σε απάντηση της 49655

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

    φίλε,

    μου είσαι λίγο μπερδεμένος...

    πως να γυρίσεις πολλά records σε μόνο 3 textboxes?

    όταν (και αν ετρεχε ο κωδικας) τρέξει ο κώδικας θα σου φέρει 3 πεδία του πρώτου row. μετά με Navigation controls πας στα άλλα records.

    γιατί θες textboxes? χρησιμοποιήσε datasets,table adapter και datatable objects.

    είναι εύκολο να το κάνεις....

    δες εδώ. εχει ενα video Που εξηγεί πως το κάνει

    http://msdn.microsoft.com/en-us/vbasic/bb643826.aspx


    Νικόλαος Καντζέλης
    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
  •  28-03-2009, 02:12 49660 σε απάντηση της 49659

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

    Εχμ, και εγώ δεν κατάλαβα τι σημαίνει "να μου επιστρέφει όλες τις εγγραφές που βρήκε". 
    Και πού να τις γράφει; (Αυτό για αρχή, προφανώς έχω και άλλες ερωτήσεις).



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

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  28-03-2009, 07:39 49663 σε απάντηση της 49655

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

    morfeus:
    Παιδιά καλησπέρα..
                    Dim ok As String = command.ExecuteScalar()

               

    Έχω και εγώ την ίδια απορία με τον προλαλήσαντα

    Πάντως αν αυτό βοηθάει εκτελείς την εντολή με ExecuteScalar. Αυτό σημαίνει ότι θα πάρεις μόνο μια τιμή ως αποτέλεσμα. Ως Συνήθως το κάνουμε αν θέλουμε πάρουμε ένα κλειδί από την βάση ή κάποιο aggregate value.

    Αν θέλεις  για παράδειγμα ας πούμε να πάρεις μια λίστα πελατών (που απλώς θέλεις να εμφανίσεις και όχι να επεξεργαστείς) μπορείς να  εκτελέσεις το command σου με ExecuteReader είναι foreword only και είναι από τις ταχύτερες μεθόδους σε αυτό το επίπεδο.

    Θα μπορούσες να το κάνει κάπως έτσι

        Dim myReader As SqlDataReader

        myReader = myCommand.ExecuteReader()

     

    Try

        While myReader.Read()

            Console.WriteLine(myReader.GetString(0))

        End While

    Catch ex as Execption

    End Try

     

     


    Don't try to argue with the machine
    Elias Markelis
    MCPD,MCT
  •  28-03-2009, 12:41 49664 σε απάντηση της 49655

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

     

    Γενικά ισχύει

  • ExecuteReader -χρησιμοποιείται για ερωτήματα ή stored procedures που επιστρέφουνε 1 ή περισσότερες γραμμές δεδομένων
  • ExecuteScalar - χρησιμοποιείται για ερωτήματα ή Stored procedures που επιστρέφουνε μία μοναδική τιμή
  • ExecuteNonQuery - χρησιμοποιείται για ερωτήματα ή Stored procedures που εισάγουνε , κάνουνε Update δεδομένα...
  • σου έχω εδώ ένα μικρό παράδειγμα. χρησιμοποιώ ένα Button και ένα datagridview Πάνω σε μια φόρμα για να φέρω δεδομένα από τον customers πίνακα της βάσης Northwind

    • επίσης δεν είναι "σωστό" να έχεις hard-coded το connection string στο oποιο event κάνει Load τα δεδομένα στο datagridview. εγώ πήγα και έβαλα μια εγγραφή με το όνομα NorthwindConnectionString

     κάνε διπλό κλικ στο "Μy project" στον solution explorer και κάτω από το tab Settings βάλε μια νέα εγγραφή. στο δικό μου παράδειγμα είναι

    Νame                                          Type                                         Scope                        Value     

    NorthwindConnectionString      connectionstring                          Application              Data Source=FOFO-PC\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True

    • Και δεν είναι σωστό να έχουμε τα sql statements χύμα πάνω στην φόρμα. χρησιμοποιώντας datasets και stored procedures κάνεις το κωδικά σου πιο maintenable,readable

     και την εφαρμογή σου πιο ασφαλή.

     

    ανοίγεις visual studio Και κάνεις ένα windows application. κάνεις drag and drop ένα datagridview και ένα button. Κάνεις διπλό κλικ στο button και βάζεις τον παρακάτω κώδικα.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim conn As SqlConnection = New SqlConnection(My.Settings.NorthwindConnectionString)

    Dim table As New DataTable

    Try

    Dim sql As String = "SELECT * FROM CUSTOMERs"

    Dim cmd As SqlCommand = New SqlCommand(sql, conn)

    conn.Open()

    Dim reader As SqlDataReader = cmd.ExecuteReader()

    table.Load(reader)

    DatagridView1.DataSource = table

    conn.Close()

    Catch ex As Exception

    MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error) 'Report exception.

    End Try

    End Sub

     

     


    Νικόλαος Καντζέλης
    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
  •  28-03-2009, 12:57 49665 σε απάντηση της 49655

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

    ο καλύτερος τρόπος βέβαια για να δουλέψεις με δεδομένα(Insert,update,delete,select) σε μια windows form application είναι το disconnected Μοντέλο και τα Datasets. σίγουρα θα πρέπει να ρίξεις λίγο

    διάβασμα πάνω σε αυτά.

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

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

    κάπως απλοικά για το disconnected Μοντέλο που σου ανέφερα έχουμε 3 κλάσσεις-objects που είναι σημαντικά

    1) Table adapter - είναι το Object Που συνδέεται με την βάση μας απευθείας. περιέχεις όλα τον ας πούμε data access code. όλα τα select , insert,update,deletes statements. Ο Table adapter ,

    συνδέεται-μιλάει με το dataset object.

    2) dataset - είναι το Object Που έχει όλα τα δεδομένα που του έδωσε ο Tableadapter. ένα dataset έχει ένα ή περισσότερα datatables.

    3) binding source - είναι υπεύθυνο το Object αυτό να πάρει τα δεδομένα από το dataset Και να κάνει το control binding. δηλαδή τα controls σε μια φόρμα που είναι databound κάνουνε connect με

    το binding source object

    αν δεις τα videos εδώ - Forms over Data Video Series

    http://msdn.microsoft.com/en-us/vbasic/bb466226.aspx#formsoverdata

    θα καταλάβεις πάρα πολλά σε πολύ λίγο χρόνο.


    Νικόλαος Καντζέλης
    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
  •  30-03-2009, 00:39 49683 σε απάντηση της 49665

    Απ: ΕΜΦΑΝΙΣΗ ΕΓΓΡΑΦΩΝ

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