Γενικά ισχύει
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