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

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
Microsoft Visual C# .NET verze tohoto článek naleznete v tématu 320916.
Pro Microsoft Visual J# Verzi tohoto článku v tématu. 320622.
Pro Microsoft Visual Basic 6.0 verzi tohoto článek naleznete v tématu 164485.
Pro Microsoft Visual Basic 6.0 verzi tohoto článek naleznete v tématu 300488.

V TOMTO ÚKOLU

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

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

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

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.

back to the top

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

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

Upozornění: Tento článek je přeložený automaticky

Свойства

ИД на статията: 306574 – Последен преглед: 12/27/2012 20:13:00 – Редакция: 10.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 KbMtcs
Обратна връзка