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

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

Na tejto stránke

Súhrn

Tento článok ukazuje ako používať ASP.NET a ADO.NET s Visual Basic .NET na vytváranie 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é budete 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ž ukazuje, ako vytvoriť webový formulár, ktorý poskytuje jednoduché užívateľské rozhranie. Webový formulár obsahuje nasledujúce položky:
  • Blok textu, v ktorom používateľ zadá vyhľadávanie podmienka.
  • DataGrid ovládací prvok, ktorý zobrazuje výsledky vyhľadávania.
  • Ovládací prvok Menovka , ktorá zobrazuje počet vrátených záznamov.
  • Ovládací prvok tlačidla , ktorý volá uloženú procedúru, keď je tlačidlo klikli.

Požiadavky

Nasledujúci zoznam popisuje odporúčaný hardvér, softvér, sieťovej infraštruktúry a balíky service pack, ktoré sú potrebné:
  • Microsoft SQL Server verzie 7.0 alebo novší
  • Microsoft Visual Studio .NET
  • Microsoft Visual Basic .NET
  • Povolenia vytvoriť uloženú procedúru v Databáza
Tento článok predpokladá, že ste oboznámení s týmito Témy:
  • SQL Server uložené postupy

Vytvoriť projekt ASP.NET a Pridanie ovládacích prvkov

V tejto sekcii môžete vytvoriť ASP.NET projekt a budovať základné užívateľské rozhranie. Všimnite si, že tento postup použiť Microsoft Visual Basic .NET kód. Vytvoriť projekt, postupujte nasledovne:
  1. Kliknite na tlačidlo Štart, ukážte na položku programy, ukážte na vývojové prostredie Microsoft Visual Studio .NETa potom kliknite na položku vývojové prostredie Microsoft Visual Studio .NET.
  2. Na Visual Studio .NET Štart, kliknite na položku Nový projekt.
  3. V Nový projekt dialógové okno, kliknite na tlačidlo Projektov programu Visual Basic podľa Projekt typy, a potom kliknite ASP.NET Web aplikácie podľa šablóny.
  4. Do poľa názov zadajte názov webovej aplikácie a potom kliknite na tlačidlo OK.
  5. Pridať 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
    OvládanieID nehnuteľnostiVlastnosť textu
    ŠtítoklblLastNameZadajte priezvisko autora:
    TextBoxtxtLastName%
    TlačidlobtnGetAuthorsZískajte autorov
    ŠtítoklblRowCount(Počet riadkov)

  6. Presuňte DataGrid server ovládací prvok z panela s nástrojmi do webového formulára, a potom nastavte Názov vlastnosti GrdAuthors.
  7. Kliknite pravým tlačidlom myši na mriežku, a potom kliknite na položku Automatický formát.
  8. Kliknite na položku Professional 1 pre schému 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 obsahuje dva parametre: @au_lname a @RowCount. Na @au_lname parameter je vstupný parameter, ktorý získava Hľadať reťazec vyhľadávanie "ako" v tabuľke autori . @RowCount parameter je Výstupný parameter, ktorý používa @@ROWCOUNT premenná získať ovplyvnené riadky.

Vytvoriť a spustiť uloženú procedúru

Pre prístup k databázam SQL Server, musíte importovať System.Data.SqlClient priestor názvov, ktorý poskytuje nové ako vyčistenia a SqlDataAdapter objekty. Môžete použiť vyčistenia čítať premiestniteľným iba dopredu prúd riadkov z databázy servera SQL Server. DataAdapter predstavuje množinu údajov príkazy a pripojenia k databáze, môžete vyplniť DataSet objektu a aktualizovať databázu SQL Server.

ADO.NET tiež zavádza DataSet objektu, ktorý je rezidentného znázornenie údajov, poskytuje konzistentné, relačný model programovania bez ohľadu na dáta zdroj. Kód v tomto oddiele 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ásenia vaše Webový formulár, ktorý sa objaví v hornej časti okna kód:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Uistite sa, že existuje uloženú procedúru a vytvoriť nové uloženú procedúru, použite SqlCommand objekt s objektom vyčistenia . SqlCommand umožňuje spúšťať žiadne príkazy SQL databázy. Potom zavolať ExecuteReader metóda SqlCommand vrátiť vyčistenia, ktorý obsahuje zodpovedajúce riadky dotazu.

    Pridať nasledujúci kód v prípade Page_Load 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 prípade kliknite na tlačidlo btnGetAuthors , a potom pomocou SqlDataAdapter objekt spustiť uloženú procedúru. Musíte vytvoriť parametre pre uloženú procedúru a pripojiť ju na zhromažďovanie parametrovSqlDataAdapter objekt.

    Po Page_Load udalosť, pridajte nasledujúci kód:
    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 roztok Explorer, kliknite pravým tlačidlom na stránke .aspx, a potom kliknite na tlačidlo Nastaviť ako úvodnú stránku.
  6. Uložiť projekt, 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 meno autora do textového poľa, a potom kliknite na tlačidlo Získajte autora. Oznámenie, že uložená procedúra sa nazýva a že vrátený riadky naplniť DataGrid.

    Môžete zadať 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, uistite sa, že ConnectionString správne poukazuje na serveri so spustenou službou SQL Server.
  • Ak sa môžete pripojiť k databáze, ale ak sa stretnete 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, do ktorej ste pripojení.

Odkazy

Ďalšie informácie nájdete v nasledujúcich témach v Microsoft .NET Framework 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

Použitie .NET údajov poskytovateľov prístupu k údajom
http://msdn2.Microsoft.com/en-us/library/s7ee2dwt (vs.71) .aspx
Ďalšie informácie nájdete v nasledujúcej knihe:
Wyke, R. Allen, a Sultan Rehman a Brad Leupen. XML programovania (Core odkaz). Vydavateľstvo Microsoft Press, 2001.
Pre viac informácie, pozri nasledujúci Microsoft Training & Certifikačný kurz:
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 nasledovné číslo článku zobrazte článok v Microsoft Knowledge Base:
300488 Ako spustiť SQL uložené procedúry zo stránky ASP

Vlastnosti

ID článku: 306574 - Posledná kontrola: 30. mája 2013 - Revízia: 3.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

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com