SqlDataSource και Oracle dataProvider δεν μπορώ να φαίνεται να είναι σε θέση να χρησιμοποιήσει το sqlDataprovider με odp.net

ψήφοι
0

Θέλω να είναι σε θέση να τρέξει SqlDataProvider μου ενάντια σε μια διαδικασία μαντείο αποθηκευμένη. Μπορώ να χρησιμοποιήσω Oracle παροχής Microsoft, αλλά αυτό δεν θα μου επιτρέψετε να καλέσετε μια αποθηκευμένη διαδικασία. έχει κανείς τη δυνατότητα να πάρει αυτό το έργο; Θέλω ιδιαίτερα να είναι σε θέση να χρησιμοποιούν δηλωτική δεσμευτική δεδομένων. Έχω ήταν σε θέση να δημιουργήσει κάποιου προγράμματος ένα DataTable, αλλά θέλω να κάνω αυτό declaratively στο .aspx.

Δημοσιεύθηκε 09/12/2008 στις 22:02
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
2

SqlDataProvider, SqlConnection και άλλες κατηγορίες πρόθεμα Sql από την System.Data χώρους ονομάτων σχεδόν καθολικά αναφέρεται σε SQL-διακομιστή συγκεκριμένες υλοποιήσεις. Είναι, όμως, δυνατόν να επικαλεστεί μια αποθηκευμένη διαδικασία χρησιμοποιώντας τη βιβλιοθήκη System.Data.oracleClient Microsoft έχει κυκλοφορήσει.

Βεβαιωθείτε ότι κατά την κατασκευή της OracleCommand περνάτε στο CommandType. StoredProcedure . Σε αντίθετη περίπτωση το μηχανισμό διαχείρισης βάσεων δεδομένων θα προκαθορίσει «πίνακα άμεση» πρόσβαση, και δεδομένου ότι δεν θα βρείτε έναν πίνακα με το όνομα της αποθηκευμένης διαδικασίας σας, αυτό θα πέσει.

Εδώ είναι μερικά παράδειγμα κώδικα σχετικά με το πώς αυτό θα μπορούσε να λειτουργήσει πίσω από τα παρασκήνια:

using (OracleConnection conn = new OracleConnection("connection string here"))
{
    conn.Open();

    OracleCommand command = conn.CreateCommand();
    command.CommandType = CommandType.StoredProcedure;

    command.CommandText = "DATABASE_NAME_HERE.SPROC_NAME_HERE";
    // Call command.Parameters.Add to add your parameters.

    using (OracleReader reader = command.ExecuteReader())
    {
        while(reader.Read())
        {
            // Process each row
        }
    }

}

Κατά τη χρήση ASP .NET, μπορείτε να χρησιμοποιήσετε το SqlDataSource να acces τον πελάτη μαντείο με μια σειρά σύνδεση ορίζεται σαν:

<add name="OracleConnectionString"
  connectionString="Data Source=YourServer;Persist 
    Security Info=True;Password="******";User ID=User1"
  providerName="System.Data.OracleClient" />

Σημειώστε ότι έχουμε το κομμάτι OracleClient εκεί. Στη συνέχεια, στο SqlDataSource ρυθμίστε την Επιλογή CommandType για να είναι StoredProcedure στη σελίδα σας ASPX, και τα υπόλοιπα λίγο πολύ τα έργα, όπως SQL Server (στην πραγματικότητα, πρέπει πραγματικά να το κάνετε αυτό για να καλέσετε την έκδοση του SQL Server).

Το αποτέλεσμα μοιάζει λίγο σαν:

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:OracleConnectionString %>"
            ProviderName="<%$ ConnectionStrings:OracleConnectionString.ProviderName %>" SelectCommand='TEST_ONE' SelectCommandType="StoredProcedure" ></asp:SqlDataSource>
Απαντήθηκε 14/12/2008 στις 12:40
πηγή χρήστη

ψήφοι
0

Εδώ είναι τα βήματα για να επιστρέψει έναν πίνακα που μοιάζει επιλέξτε δήλωση ::

1) Θα πρέπει να επιστρέψετε ένα δρομέα για την επιλογή, στη συνέχεια, προσθέστε τις παραμέτρους io_cursor IN OUT CURSOR

2) Όταν Καταναλώστε το προσθέσετε άλλη παράμετρο

<asp:Parameter Name="io_cursor" Direction="Output" />

3) Προσθήκη διαδικασία συμβάντος για την εκδήλωση «επιλογή»

4) προστατεύονται άκυρη SqlDataSource1_Selecting (αντικείμενο αποστολέα, SqlDataSourceSelectingEventArgs e) {((System.Data.OracleClient.OracleParameter) e.Command.Parameters [0]) OracleType = System.Data.OracleClient.OracleType.Cursor.? }

Τώρα θα δουλεύουν μια χαρά.

Απαντήθηκε 08/03/2013 στις 19:05
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more