Καταρχήν, κάτι που δεν έχει να κάνει με την εκτέλεση της sp. Η παρακάτω γραμμή μπορεί να δημιουργήσει θέματα ασφάλειας:
Dim myCmd As New SqlCommand("SELECT * FROM Coupon WHERE AA =('" & AA & "')", myConn)
Βλέπω ότι την τιμή ΑΑ την παίρνεις από μια session variable. Δεν ξέρω πως την βάζεις εκεί, αλλά αν προέρχεται από τον τελικό χρήστη τότε μπορεί να πέσεις θύμα sql injection.
Π.χ. αν AA="5');DELETE FROM Coupon" θα διαγραφεί όλος ο πίνακας Coupon. Ψάξε για sql injection σε αυτό το site και θα δεις ότι η σωστή εκτέλεση γίνεται με parameters στο sql command.
Κατά τα άλλα εκτελείς την procedure με ExecuteNonQuery. Αυτό εξ ορισμού δεν επιστρέφει αποτελέσματα. Πρέπει να την εκτελέσεις με ExecuteReader ή να βάλεις την SqlCommand σε έναν SqlDataAdapter και να εκτλέσεις την Fill του data adapter για να γεμίσεις ένα dataset. π.χ.
myAdapter.SelectCommand = myCmd;
myAdapter.Fill(myDataSet);
Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.