Du arbetar offline, väntar på att återansluta till Internet

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

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
Pre Microsoft Visual C# .NET verzie tohto článok nájdete v 320916.
Pre Microsoft Visual J# .NET verzie tohto článok, pozri 320622.
Pre Microsoft Visual Basic 6.0 verziu tohto článok nájdete v 164485.
Pre Microsoft Visual Basic 6.0 verziu tohto článok nájdete v 300488.

V TEJTO ÚLOHE

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.
back to the top

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
back to the top

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:
    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.
back to the top

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.

back to the top

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.DataImports 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 WithEnd 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."
back to the top

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í.
back to the top
Odkazy
Ďalšie informácie nájdete v nasledujúcich témach v Microsoft .NET Framework Software Development Kit (SDK) dokumentácia: Ď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: 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
back to the top

Upozornenie: Tento článok bol preložený automaticky.

Egenskaper

Artikel-id: 306574 – senaste granskning 05/30/2013 08:28:00 – revision: 3.0

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

  • kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMtsk
Feedback