Jak volat SQL Server uložené procedury v technologii ASP.NET pomocí Visual Basic .NET

Překlady článku Překlady článku
ID článku: 306574 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek ukazuje, jak použít technologii ASP.NET a ADO.NET pomocí jazyka Visual Basic .NET, vytvoření a volání Microsoft SQL Server, uložená postup s parametr vstupní a výstupní parametr.

Kód Ukázky v tomto článku nejprve zkontroluje zda uložené procedury, která bude vytvořit v databázi existuje. Pokud uložená procedura neexistuje, kód vytvoří uložené procedury, která přijímá jeden parametr pro hledání v tabulce autoři podle příjmení a vrátí odpovídající řádky a počet řádků vrácených v výstupní parametr.

V tomto článku také ukazuje, jak vytvořit webový formulář, který poskytuje jednoduché uživatelské rozhraní. Webový formulář obsahuje následující položky:
  • Textové pole, do kterého uživatel zadává hledání podmínka.
  • Ovládací prvek DataGrid , který zobrazuje výsledky hledání.
  • Ovládací prvek Popisek , který zobrazuje počet vrácených záznamů.
  • Tlačítko ovládací prvek, který volá uloženou proceduru, pokud je tlačítko klepnutí.

Požadavky

Následující seznam obsahuje doporučený hardware, software, síťovou infrastrukturu a požadované aktualizace service Pack:
  • Microsoft SQL Server verze 7.0 nebo vyšší
  • Microsoft Visual Studio .NET
  • Microsoft Visual Basic .NET
  • Oprávnění k vytvoření uložené procedury v databáze
Tento článek předpokládá, že jste obeznámeni s následujícími témata:
  • Uložené procedury SQL serveru

Vytvoření projektu ASP.NET a přidat ovládací prvky

V této části slouží k vytvoření projektu ASP.NET a sestavit základní uživatelské rozhraní. Všimněte si, že tyto kroky použijte Microsoft Visual Basic .NET kód. Chcete-li vytvořit projekt, postupujte takto:
  1. Klepněte na tlačítko Start, přejděte na příkaz programy, přejděte na Microsoft Visual Studio.NETa pak klepněte na položku Microsoft Visual Studio.NET.
  2. Na stránce Visual Studio .NET spusťte klepnutím na tlačítko Nový projekt.
  3. V dialogovém okně Nový projekt klepněte na tlačítko Projekty jazyka Visual Basic v části Typy projektua v části šablonyklepněte na příkaz Webová aplikace ASP.NET .
  4. V poli název zadejte název pro webovou aplikaci a potom klepněte na tlačítko OK.
  5. Přidejte následující serverové ovládací prvky webového formuláře a nastavte vlastnosti uvedené v tabulce:
    Zmenšit tuto tabulkuRozšířit tuto tabulku
    Ovládací prvekVlastnost IDVlastnost text
    PopiseklblLastNameZadejte příjmení autora:
    Textové poletxtLastName%
    TlačítkobtnGetAuthorsZískat autoři
    PopiseklblRowCount(Počet řádků)

  6. Přetáhněte serverový ovládací prvek DataGrid z panelu nástrojů do webového formuláře a potom nastavte Název vlastnosti GrdAuthors.
  7. Klepněte pravým tlačítkem myši tabulku a potom klepněte na tlačítko Automatický formát.
  8. Klepněte na tlačítko Professional 1 schématu a potom klepněte na tlačítko OK.

Vytvořit GetAuthorsByLastName uložená procedura

Použít následující kód jazyka Transact-SQL k vytvoření GetAuthorsByLastName uložená procedura:
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 parametry: @au_lname a @RowCount. Na Parametr @au_lname je vstupní parametr, který získává vyhledávací řetězec, který má vyhledávání "jako" v tabulce autoři . Parametr @RowCount je výstupní parametr, který používá Proměnná @@ROWCOUNT získat ovlivněné řádky.

Vytvoření a spuštění uložené procedury

Chcete-li získat přístup k databázím serveru SQL Server, je nutné importovat jmenný prostor System.Data.SqlClient , poskytující nové objekty, jako jsou například SqlDataReader a SqlDataAdapter objekty. SqlDataReader lze číst pouze pro předávání datového proudu řádků z databáze serveru SQL Server. Vlastnost DataAdapter , představuje sadu datových příkazů a připojení k databázi, můžete použít k vyplnění objektu DataSet a aktualizovat databázi serveru SQL Server.

TECHNOLOGIE ADO.NET Novinkou v objektu DataSet , který je rezidentní v paměti reprezentace dat, poskytuje konzistentní a relační model programování bez ohledu na data zdroj. Kód v tomto oddílu používá všechny tyto objekty.
  1. Poklepejte na položku formulář na webu.
  2. Přidejte následující kód do části prohlášení své Webový formulář, který se zobrazí v horní části okna kód:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Ujistěte se, zda existuje uložené procedury a vytvořit nové uložené procedury, použijte SqlCommand objekt s SqlDataReader objekt. Chcete-li spustit všechny příkazy SQL pro databázi, můžete použít SqlCommand . Potom voláním metody ExecuteReaderSqlCommand vrátíte SqlDataReader, která obsahuje odpovídající řádky pro dotaz.

    Přidat Následující kód v události Page_Load webový formulář:
    '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. Volání uložené procedury události klepněte na tlačítko btnGetAuthors a potom spusťte uloženou proceduru pomocí objektu SqlDataAdapter . Musíte vytvořit parametry pro uložené procedury a připojit ji ke kolekci Parameters objektu SqlDataAdapter .

    Po události Page_Load přidejte následující 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 okně Průzkumník řešení klikněte pravým tlačítkem myši na stránku ASPX a poté Klepněte na tlačítko Nastavit jako úvodní stránku.
  6. Uložte projekt a potom klepněte na tlačítko Spustit v sadě Visual Studio .NET. Všimněte si, že je projekt zkompilován a že spustí výchozí stránku.
  7. Do textového pole zadejte příjmení autora a potom klepněte na tlačítko Získat Autor. Všimněte si, že uložená procedura je volána a zda vráceného řádky naplnění ovládacího prvku DataGrid.

    Můžete zadat typ aplikace SQL Server vyhledávací řetězce, jakoG %, která vrací všechny autory podle data poslední názvy začínají písmenem "G"

Poradce při potížích

  • Pokud se nemůžete připojit k databázi, ujistěte se, že ConnectionString správně odkazuje na serveru se systémem SQL Server.
  • Pokud se můžete připojit k databázi, ale pokud narazíte na Ujistěte se, zda máte potíže při pokusu o vytvoření uložené procedury správná oprávnění k vytvoření uložené procedury v databázi, ke kterému se připojujete.

Odkazy

Další informace naleznete v následujících tématech Dokumentace rozhraní.NET Framework Software Development Kit (SDK) společnosti Microsoft:
Přehled technologie 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

Pomocí zprostředkovatele dat .NET pro přístup k datům
http://msdn2.microsoft.com/en-us/library/s7ee2dwt (vs.71) .aspx
Další informace naleznete v následující knize:
Wyke, R. Allen a Sultan Rehman a Brad Leupen. XML Programming (Core Reference). Microsoft Press, 2001.
Další informace naleznete v následujících Microsoft Training & Certifikační kurz:
2389 Programování rozhraní ADO
Pro další informace o tom, jak provést tuto úlohu pomocí Microsoft Active Server Stránky, klepněte na tlačítko znalostní báze Microsoft Znalostní báze Knowledge Base:
300488 Jak spustit SQL uložených procedur ze stránky ASP

Vlastnosti

ID článku: 306574 - Poslední aktualizace: 27. prosince 2012 - Revize: 10.0
Informace v tomto článku jsou určeny pro produkt:
  • 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
Klíčová slova: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku: 306574

Dejte nám zpětnou vazbu

 

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