Ako volať SQL Server uložené postupy v ASP.NET pomocou jazyka Visual Basic.NET

ID článku: 306574 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

SUHRN

Tento článok ukazuje ako používať ASP.NET a ADO.NET s programom Visual Basic.NET vytvoriť a volať Microsoft SQL Server uložené postup s vstupný parameter a výstupný parameter.

Kód vzorky v tomto článku prvých kontrolách či uloženej procedúry, ktoré vám bude vytvoriť existuje v databáze. Ak uloženej procedúry neexistuje kód vytvorí uloženú procedúru, ktorá trvá jeden parameter na vyhľadávanie Autori Tabuľka na základe priezvisko a vráti zhodné riadky a počet riadkov, ktoré sa vrátia v výstupný parameter.

Tento článok tiež demonštruje ako vytvoriť webového formulára, ktorý poskytuje jednoduchý používateľa rozhranie. Webový formulár obsahuje nasledujúce položky:
  • Blok textu, v ktorom používateľ zadá vyhľadávanie podmienka.
  • A Údajová mriežka Ovládací prvok, ktorý zobrazuje výsledky vyhľadávania.
  • A Štítok Ovládací prvok, ktorý zobrazuje počet vrátených záznamov.
  • A Tlačidlo Ovládací prvok, ktorý vyzýva uloženej procedúry pri tlačidlo je klikli.

Požiadavky

Nasledujúci zoznam popisuje odporúčané hardware, software, sieťovú infraštruktúru a balíky service pack, ktoré sú povinné:
  • Microsoft SQL Server verzie 7.0 alebo novšej
  • Microsoft Visual Studio.NET
  • Microsoft Visual Basic.NET
  • Povolenia na vytvorenie uloženej procedúry v databáza
Tento článok predpokladá, že ste oboznámení s týmito témy:
  • SQL Server uložené postupy

Vytvoriť ASP.ČISTÁ projektu a pridať ovládacie prvky

V tejto sekcii môžete vytvoriť ASP.ČISTÝ projektu a vybudovať základné používateľské rozhranie. Všimnite si, že tieto kroky použiť Microsoft Visual Basic.NET kód. Ak chcete vytvoriť projekt, postupujte nasledovne:
  1. Kliknite na položku Štart, ukážte na Programs, ukážte na Microsoft Visual Studio.NET, a potom kliknite na tlačidlo Microsoft Visual Studio.NET.
  2. Na program Visual Studio.ČISTÝ úvodnú stránku, kliknite na tlačidlo Nový projekt.
  3. V Nový projekt dialógové okno, kliknite na tlačidlo Projektov programu Visual Basic podľa Projekt typy, a potom kliknite na tlačidlo ASP.NET webovú aplikáciu podľa Šablóny.
  4. V programu rámček, zadajte názov pre webovú aplikáciu a potom kliknite na tlačidlo ok.
  5. Pridajte nasledujúce ovládacie prvky servera do webového formulára a nastaviť vlastnosti ako sú uvedené v tabuľke:
    Zbaliť túto tabuľkuRozbaliť túto tabuľku
    KontrolaIdentifikácia nehnuteľnostiVlastnosť textu
    ŠtítoklblLastNameZadajte posledný meno autora:
    Blok textutxtLastName%
    TlačidlobtnGetAuthorsZískajte Autori
    ŠtítoklblRowCount(Počet riadkov)

  6. Presúvanie Údajová mriežka Server ovládací prvok z panela s nástrojmi do webového formulára a potom nastavteprogramu Vlastnosť GrdAuthors.
  7. Kliknite pravým tlačidlom myši mriežky a potom kliknite na Automatický formát.
  8. Kliknite na položku Professional 1 schéma a potom kliknite na tlačidlo ok.

Vytvoriť GetAuthorsByLastName uložená procedúra

Použite nasledujúci kód Transact-SQL vytvoriť GetAuthorsByLastName uložená procedúra:
Create Procedure GetAuthorsByLastName1 (@au_lname varchar(40), @RowCount int output)  
as 

select * from authors where au_lname like @au_lname; 

/* @@ROWCOUNT returns the number of rows that are affected by the last statement. */ 
select @RowCount=@@ROWCOUNT
				
Tento kód zahŕňa dva parametre: @ au_lname a @ RowCount. V @ au_lname parameter je vstupný parameter, ktorý získa vyhľadávací reťazec "ako" vyhľadávanie v Autori Tabuľka. @ RowCount parameter je výstupný parameter, ktorý používa @@ ROWCOUNT premenná získať postihnutých riadkov.

Vytvorenie a spustenie uloženej procedúry

Prístup k databázam SQL Server, musíte importovať System.Data.SqlClient priestor názvov, ktorý poskytuje nové objekty, ako SqlDataReader a SqlDataAdapter objekty. Môžete použiť SqlDataReader čítať prúd premiestniteľným iba dopredu riadkov z databázy servera SQL Server. DataAdapter predstavuje súbor údajov príkazy a pripojenie databázy, môžete použiť na vyplnenie Množina údajov objekt a aktualizovať databázu servera SQL Server.

ADO.NET zavádza aj Množina údajov objekt, ktorý je rezidentný reprezentáciu údajov, poskytuje konzistentné, relačný model programovania nezávisle od údajov Zdroj. Kód v tejto časti používa všetky tieto objekty.
  1. Dvakrát kliknite na ikonu webového formulára.
  2. Pridať nasledujúci kód do sekcie vyhlásenie vášho Webový formulár, ktorý sa zobrazí v hornej časti okna s kódom:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Uistite sa, že existuje uloženej procedúry a vytvoriť nový uložená procedúra, používanie SqlCommand objekt s SqlDataReader objekt. Môžete použiť SqlCommand spustiť všetky príkazy SQL s databázou. Potom volajte ExecuteReader metóda SqlCommand vrátiť sa SqlDataReader, ktorý obsahuje zodpovedajúce riadky dotazu.

    Pridať po kód v Page_Load udalosť webového formulára:
    'Only run this code the first time the page is loaded.
    'The code inside the IF statement is skipped when you resubmit the page.
    If Not IsPostBack Then
        Dim MyConnection As SqlConnection
        Dim MyCommand As SqlCommand
        Dim MyDataReader As SqlDataReader
    
        'Create a Connection object.
        MyConnection = New SqlConnection("server=(local);database=pubs;Trusted_Connection=yes")
    
        'Create a Command object, and then set the connection.
        'The following SQL statements check whether a GetAuthorsByLastName stored procedure 
        'already exists.
        MyCommand = New SqlCommand("if object_id('pubs..GetAuthorsByLastName') is not null " + "begin" + " if objectproperty(object_id('pubs..GetAuthorsByLastName'), 'IsProcedure')= 1" + " select object_id('pubs..GetAuthorsByLastName')" + " else" + " return " + "end" + " else" + " return", MyConnection)
    
        With MyCommand
            'Set the command type that you will run.
            .CommandType = CommandType.Text
    
            'Open the connection.
            .Connection.Open()
    
            'Run the SQL statement, and then get the returned rows to the DataReader.
            MyDataReader = .ExecuteReader()
    
            'If any rows are retuned, the stored procedure that you are trying 
            'to create already exists. Therefore, try to create the stored procedure
            'only if it does not exist.
            If Not MyDataReader.Read() Then
                .CommandText = "create procedure GetAuthorsByLastName (@au_lname varchar(40), " & _ 
    
                                "@RowCount int output) " & _ 
    
                                " as select * from authors where au_lname like @au_lname; select @RowCount=@@ROWCOUNT"
                MyDataReader.Close()
                .ExecuteNonQuery()
            Else
                MyDataReader.Close()
            End If
    
            .Dispose()  'Dispose of the Command object.
            MyConnection.Close() 'Close the connection.
        End With
    End If
    					
  4. Volanie uloženej procedúry v Kliknite na položku v prípade btnGetAuthors tlačidlo, a potom použite SqlDataAdapter objekt na spustenie uloženej procedúry. Musíte vytvoriť parametre pre uloženú procedúru a pripojiť k Parametre Kolekcia SqlDataAdapter objekt.

    Pridajte nasledujúci kód po Page_Load udalosť:
    Private Sub btnGetAuthors_Click(ByVal sender As System.Object, _
     ByVal e As System.EventArgs) Handles btnGetAuthors.Click
        Dim DS As DataSet
        Dim MyConnection As SqlConnection
        Dim MyDataAdapter As SqlDataAdapter
    
        'Create a connection to the SQL Server.
        MyConnection = New SqlConnection("server=(local);database=pubs;Trusted_Connection=yes")
    
        'Create a DataAdapter, and then provide the name of the stored procedure.
        MyDataAdapter = New SqlDataAdapter("GetAuthorsByLastName", MyConnection)
    
        'Set the command type as StoredProcedure.
        MyDataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure
    
        'Create and add a parameter to Parameters collection for the stored procedure.
        MyDataAdapter.SelectCommand.Parameters.Add(New SqlParameter("@au_lname", _
       SqlDbType.VarChar, 40))
    
        'Assign the search value to the parameter.
        MyDataAdapter.SelectCommand.Parameters("@au_lname").Value = Trim(txtLastName.Text)
    
        'Create and add an output parameter to Parameters collection. 
        MyDataAdapter.SelectCommand.Parameters.Add(New SqlParameter("@RowCount", _
        SqlDbType.Int, 4))
    
        'Set the direction for the parameter. This parameter returns the Rows returned.
        MyDataAdapter.SelectCommand.Parameters("@RowCount").Direction = ParameterDirection.Output
    
        DS = New DataSet() 'Create a new DataSet to hold the records.
        MyDataAdapter.Fill(DS, "AuthorsByLastName") 'Fill the DataSet with the rows returned.
    
        'Get the number of rows returned, and then assign it to the Label control.
        'lblRowCount.Text = DS.Tables(0).Rows.Count().ToString() & " Rows Found!"
        lblRowCount.Text = MyDataAdapter.SelectCommand.Parameters(1).Value & " Rows Found!"
    
        'Set the data source for the DataGrid as the DataSet that holds the rows.
        Grdauthors.DataSource = DS.Tables("AuthorsByLastName").DefaultView
    
        'Bind the DataSet to the DataGrid. 
        'NOTE: If you do not call this method, the DataGrid is not displayed!
        Grdauthors.DataBind()
    
        MyDataAdapter.Dispose() 'Dispose of the DataAdapter.
        MyConnection.Close() 'Close the connection.
    End Sub
    					
  5. V roztoku Prieskumník kliknite pravým tlačidlom na stránke .aspx a potom kliknite na tlačidlo Nastaviť ako úvodnú stránku.
  6. Uloženie projektu, a potom kliknite na tlačidlo Štart v Visual Studio.NET. Všimnite si, že projekt je zostavený a že predvolenú stránku beží.
  7. Zadajte posledný meno autora do textového poľa a potom kliknite naZískajte autora. Oznámenie sa nazýva uloženej procedúry a že vrátený riadky osídlit Údajová mriežka.

    Môžete poskytnúť typ servera SQL vyhľadávacie reťazce, akoG %, ktorá vráti všetky autori podľa posledného mená, ktoré začínajú písmenom "G."

Riešenie problémov

  • Ak sa nemôžete pripojiť k databáze, skontrolujte, či ConnectionString správne bodov na server so spustenou službou SQL Server.
  • Ak sa môžete pripojiť k databáze, ale ak ste skúsenosti problémy pri pokuse vytvoriť uloženú procedúru, presvedčte sa, že máte správne povolenia na vytvorenie uložené procedúry v databáze na ktoré pripájate.

ODKAZY

Ďalšie informácie nájdete v nasledujúcich témach v Microsoft.NET rámec Software Development Kit (SDK) dokumentácia:
Prehľad ADO.NET
http://msdn.Microsoft.com/en-us/library/h43ks021.aspx

ADO.NET DataSet
http://msdn.Microsoft.com/en-us/library/zb0sdh0b (VS.71) .aspx

Pomocou.NET údaje poskytovateľov prístupu k údajom
http://msdn2.Microsoft.com/en-us/library/s7ee2dwt (vs.71) .aspx
Všeobecnejšie informácie o ADO.NET alebo Visual Basic.NET, odkazovať na nasledujúce diskusné skupiny MSDN:
Microsoft.public.dotNET.Framework.adonet

Microsoft.public.dotNET.languages.VB
Ďalšie informácie nájdete v nasledujúcej knihe:
Wyke, R. Allen, a Sultan Rehman a Brad Leupen. XML programovanie (Core odkaz). Microsoft Press, 2001.
Ďalšie informácie nájdete v nasledujúcich odbornej prípravy Microsoft & Certifikácia kurzu:
2389 Programovania s ADO.NET
Pre ďalšie informácie o tom, ako vykonať túto úlohu pomocou Microsoft Active Server Stránky, kliknite na nasledujúce číslo článku zobrazte článok v Microsoft Knowledge Base:
300488 Ako spustiť SQL uložené postupov zo stránky ASP

Vlastnosti

ID článku: 306574 - Posledná kontrola: 31. októbra 2011 - Revízia: 2.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
  • Microsoft ADO.NET 1.1
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
Kľúčové slová: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem:306574

Odošlite odozvu