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:
- 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.
- Na program Visual Studio.ČISTÝ úvodnú stránku, kliknite na tlačidlo Nový projekt.
- 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.
- V programu rámček, zadajte názov pre webovú aplikáciu a potom kliknite na tlačidlo ok.
- 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
| Kontrola | Identifikácia nehnuteľnosti | Vlastnosť textu |
|---|
| Štítok | lblLastName | Zadajte posledný meno autora: |
| Blok textu | txtLastName | % |
| Tlačidlo | btnGetAuthors | Získajte Autori |
| Štítok | lblRowCount | (Počet riadkov) |
- Presúvanie Údajová mriežka Server ovládací prvok z panela s nástrojmi do webového formulára a potom nastavteprogramu Vlastnosť GrdAuthors.
- Kliknite pravým tlačidlom myši mriežky a potom kliknite na Automatický formát.
- 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.
- Dvakrát kliknite na ikonu webového formulára.
- 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
- 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
- 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
- V roztoku Prieskumník kliknite pravým tlačidlom na stránke .aspx a potom
kliknite na tlačidlo Nastaviť ako úvodnú stránku.
- 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ží.
- 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.
Ďalšie informácie nájdete v nasledujúcich témach v
Microsoft.NET rámec Software Development Kit (SDK) dokumentácia:
Všeobecnejšie informácie o ADO.NET alebo Visual Basic.NET,
odkazovať na nasledujúce diskusné skupiny MSDN:
Microsoft.public.dotNET.Framework.adonet
(http://msdn.microsoft.com/newsgroups/default.aspx?query=dotnet.framework.adonet&dg=&cat=en-us-msdn&lang=en&cr=US&pt=&catlist=774F24A2-F71F-425F-AC2B-DC48AB0DA5C9&dglist=&ptlist=&exp=&sloc=en-us)
Microsoft.public.dotNET.languages.VB
(http://msdn.microsoft.com/newsgroups/default.aspx?query=dotnet.languages.vb&dg=&cat=en-us-msdn&lang=en&cr=US&pt=&catlist=774F24A2-F71F-425F-AC2B-DC48AB0DA5C9&dglist=&ptlist=&exp=&sloc=en-us)
Ďalšie informácie nájdete v nasledujúcej knihe:
Wyke, R. Allen, a Sultan Rehman a Brad Leupen.
XML programovanie (Core odkaz)
(http://www.microsoft.com/mspress/books/sampchap/4798.aspx)
. Microsoft Press, 2001.
Ďalšie informácie nájdete v nasledujúcich odbornej prípravy Microsoft &
Certifikácia kurzu:
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
(http://support.microsoft.com/kb/300488/EN-US/
)
Ako spustiť SQL uložené postupov zo stránky ASP
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
| 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
(http://support.microsoft.com/kb/306574/en-us/
)