Làm th? nào đ? g?i SQL máy ch? lưu tr? th? t?c trong ASP.NET b?ng cách s? d?ng Visual Basic.net

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 306574 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tóm t?t

Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng ASP.NET và ADO.NET v?i Visual Basic.net đ? t?o ra và đ? g?i m?t Microsoft SQL máy ch? lưu tr? th? t?c v?i m?t tham s? đ?u vào và m?t tham s? đ?u ra.

M? m?u trong bài vi?t đ?u tiên ki?m tra cho dù các th? t?c d?ch s?n mà b?n s? t?o t?n t?i trong b? máy cơ s? d? li?u. N?u các th? t?c d?ch s?n không t?n t?i, m? t?o ra m?t th? t?c d?ch s?n mà ph?i m?t m?t tham s? đ? t?m b?ng tác gi? d?a trên tên cu?i cùng và tr? v? hàng phù h?p và s? lư?ng hàng đó đư?c tr? v? trong m?t tham s? đ?u ra.

Bài vi?t này c?ng ch?ng t? làm th? nào đ? t?o ra m?t h?nh th?c Web cung c?p m?t ngư?i dùng đơn gi?n giao di?n. Các h?nh th?c Web có ch?a các m?c sau đây:
  • M?t h?p văn b?n trong đó ngư?i dùng lo?i tra c?u đi?u ki?n.
  • M?t đi?u khi?n DataGrid Hi?n th? k?t qu? tra c?u.
  • M?t đi?u khi?n nh?n Hi?n th? s? lư?ng h? sơ tr? l?i.
  • M?t nút ch?n m?t đi?u khi?n cho các cu?c g?i th? t?c d?ch s?n khi nút ch?n m?t nh?p vào.

Yêu c?u

Danh sách sau đây tóm t?t các ph?n c?ng đư?c đ? ngh?, ph?n m?m, cơ s? h? t?ng m?ng, và gói b?n ghi d?ch v? đư?c yêu c?u:
  • Microsoft SQL Server Phiên b?n 7.0 ho?c sau này
  • Microsoft Visual Studio Net
  • Microsoft Visual Basic .NET
  • Quy?n truy c?p đ? t?o ra các th? t?c d?ch s?n trong các b? máy cơ s? d? li?u
Bài vi?t này gi? đ?nh r?ng b?n đang quen thu?c v?i sau Các ch? đ?:
  • Th? t?c lưu tr? SQL Server

T?o m?t d? án ASP.NET và thêm đi?u khi?n

Trong ph?n này, b?n t?o m?t d? án ASP.NET và xây d?ng các giao di?n ngư?i dùng cơ b?n. Lưu ? r?ng các bư?c sau s? d?ng Microsoft Visual Basic.net M?. Đ? t?o ra các d? án, h?y làm theo các bư?c sau:
  1. Nh?p vào B?t đ?u, đi?m đ?n chương tr?nh, đi?m đ?n Microsoft Visual Studio.NET, và sau đó b?m Microsoft Visual Studio.NET.
  2. Trên trang Visual Studio net B?t đ?u, b?m vào D? án m?i.
  3. Trong hộp thoại M?i d? án , nh?p vào Visual Basic d? án dư?i Các lo?i d? án, và sau đó nh?p vào ?ng d?ng ASP.NET Webm?u.
  4. Trong h?p tên , nh?p tên cho ứng dụng web c?a b?n, và sau đó nh?p vào OK.
  5. Thêm đi?u khi?n máy ch? sau vào m?u Web, và thi?t l?p Các thu?c tính như chúng đư?c li?t kê trong b?ng:
    Thu g?n b?ng nàyBung r?ng b?ng này
    Ki?m soátS? h?u IDB?t đ?ng s?n văn b?n
    Nh?n hi?ulblLastNameG? tên cu?i cùng c?a tác gi?:
    H?p văn b?ntxtLastName%
    nút ch?n m?tbtnGetAuthorsNh?n đư?c tác gi?
    Nh?n hi?ulblRowCount(D?ng s?)

  6. Kéo m?t đi?u khi?n DataGrid máy ch? t? h?p công c? đ? t?o web site, và sau đó thi?t l?p các Tên tài s?n đ? GrdAuthors.
  7. B?m chu?t ph?i vào lư?i đi?n, và sau đó nh?p vào Autoformat.
  8. Click vào chuyên nghi?p 1 cho các đ? án, và sau đó nh?p vào OK.

T?o ra GetAuthorsByLastName lưu tr? th? t?c

S? d?ng m? Transact-SQL sau đây đ? t?o ra các GetAuthorsByLastName lưu tr? th? t?c:
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
				
M? này bao g?m hai tham s?: @au_lname và @RowCount. Các tham s? @au_lname là m?t tham s? đ?u vào có đư?c chu?i tra c?u đ? th?c hi?n m?t tra c?u "thích" trong b?ng tác gi? . Tham s? @RowCount là m?t tham s? đ?u ra s? d?ng @@ROWCOUNT bi?n đ? có đư?c hàng b? ?nh hư?ng.

T?o b?t lên và ch?y các th? t?c d?ch s?n

Đ? B? máy b? máy cơ s? d? li?u Access SQL Server, b?n ph?i nh?p tên System.Data.SqlClient , trong đó cung c?p cho các đ?i tư?ng m?i như SqlDataReader và các đ?i tư?ng SqlDataAdapter . B?n có th? s? d?ng SqlDataReader đ? đ?c m?t d?ng ch? có chuy?n ti?p c?a các hàng t? m?t b? máy cơ s? d? li?u SQL Server. DataAdapter đ?i di?n cho m?t t?p h?p các d? li?u l?nh và k?t n?i b? máy cơ s? d? li?u mà b?n có th? s? d?ng đ? đi?n vào các đ?i tư?ng d? li?u và C?p Nh?t b? máy cơ s? d? li?u SQL Server.

ADO.NET c?ng gi?i thi?u các đ?i tư?ng d? li?u , m?t đ?i di?n b? nh? cư trú c?a d? li?u mà cung c?p m?t mô h?nh l?p tr?nh phù h?p, quan h? b?t k? các d? li?u ngu?n. M? trong ph?n này s? d?ng t?t c? các đ?i tư?ng.
  1. Nh?p đúp vào bi?u m?u Web.
  2. Thêm m? sau vào ph?n tuyên b? c?a b?n Bi?u m?u web, trong đó xu?t hi?n ? trên đ?u c?a s? m?:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Đ? đ?m b?o r?ng các th? t?c d?ch s?n t?n t?i và đ? t?o ra m?t th? t?c d?ch s?n m?i, s? d?ng m?t SqlCommand đ?i tư?ng v?i m?t đ?i tư?ng SqlDataReader . B?n có th? s? d?ng SqlCommand đ? ch?y b?t k? l?nh SQL ch?ng l?i b? máy cơ s? d? li?u. Sau đó g?i phương pháp ExecuteReaderSqlCommand đ? tr? v? SqlDataReader, ch?a hàng phù h?p cho truy v?n c?a b?n.

    Thêm các Các m? sau đây trong các Page_Load s? ki?n c?a m?u Web:
    '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. G?i các th? t?c d?ch s?n trong trư?ng h?p nh?p vào nút ch?n m?t btnGetAuthors , và sau đó s? d?ng các đ?i tư?ng SqlDataAdapter đ? ch?y th? t?c d?ch s?n c?a b?n. B?n ph?i t?o tham s? cho các th? t?c d?ch s?n và thêm nó vào b? sưu t?p tham s? đ?i tư?ng SqlDataAdapter .

    Thêm m? sau đây sau khi các Page_Load s? ki?n:
    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. Trong gi?i pháp Explorer, b?m chu?t ph?i vào .aspx trang, và sau đó B?m chu?t Đ?t như B?t đ?u trang.
  6. Lưu d? án, và sau đó nh?p vào B?t đ?u trong Visual Studio .NET. Nh?n th?y r?ng các d? án đư?c biên so?n và r?ng trang m?c đ?nh ch?y.
  7. G? tên cu?i cùng c?a tác gi? trong h?p văn b?n, và sau đó nh?p vào Nh?n đư?c tác gi?. Thông báo r?ng các th? t?c d?ch s?n đư?c g?i là và r?ng s? quay tr? l?i hàng cư DataGrid.

    B?n có th? cung c?p các lo?i máy ch? SQL T?m chu?i nhưG %, mà tr? v? t?t c? các tác gi? c?a cu?i tên mà B?t đ?u b?ng ch? "Project"

Kh?c ph?c s? c?

  • N?u b?n không th? k?t n?i v?i b? máy cơ s? d? li?u, đ?m b?o r?ng ConnectionString đúng đi?m đ?n máy ch? đang ch?y SQL H? ph?c v?.
  • N?u b?n có th? k?t n?i v?i b? máy cơ s? d? li?u, nhưng n?u b?n có kinh nghi?m v?n đ? khi b?n c? g?ng t?o các th? t?c d?ch s?n, h?y ch?c ch?n r?ng b?n có Các đi?u kho?n chính xác đ? t?o ra các th? t?c d?ch s?n trong b? máy cơ s? d? li?u mà b?n đang k?t n?i.

Tham kh?o

Đ? bi?t thêm chi ti?t, xem các ch? đ? sau đây trong các Microsoft Khuôn kh? .NET ph?n m?m phát tri?n Kit (SDK) tài li?u:
T?ng quan v? ADO.NET
http://MSDN.Microsoft.com/en-US/Library/h43ks021.aspx

D? li?u ADO.NET
http://MSDN.Microsoft.com/en-US/Library/zb0sdh0b (VS.71) .aspx

S? d?ng .NET d? li?u nhà cung c?p đ? truy c?p d? li?u
http://msdn2.Microsoft.com/en-US/Library/s7ee2dwt (vs.71) .aspx
Đ? bi?t thêm chi ti?t, xem cu?n sách sau đây:
Wyke, R. Allen, và Sultan lien và Brad Leupen. L?p tr?nh XML (c?t l?i tài li?u tham kh?o). Microsoft Press, 2001.
Đ? bi?t thêm thông tin, h?y xem Training Microsoft sau & Ch?ng nh?n khóa h?c:
2389 L?p tr?nh v?i ADO.NET
Đ?i v?i b? sung thông tin v? làm th? nào đ? th?c hi?n nhi?m v? này b?ng cách s? d?ng Microsoft Active Server Trang, nh?p vào s? bài vi?t dư?i đây đ? xem bài vi?t trong Microsoft Ki?n th?c cơ b?n:
300488 Làm th? nào đ? ch?y SQL lưu tr? các th? t?c t? m?t trang ASP

Thu?c tính

ID c?a bài: 306574 - L?n xem xét sau cùng: 30 Tháng Năm 2013 - Xem xét l?i: 3.0
Áp d?ng
  • 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
T? khóa: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài viết này được d?ch b?ng phần mềm dịch thu?t của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa l?i thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung c?p các bài vi?t đư?c c? biên d?ch viên và ph?n m?m d?ch thu?t th?c hi?n và c?ng đ?ng ch?nh s?a l?i đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng nhi?u ngôn ng? Tuy nhiên, bài vi?t do máy d?ch hoặc thậm chí cộng đồng chỉnh sửa sau không ph?i lúc nào c?ng hoàn h?o. Các bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 306574

Cung cấp Phản hồi

 

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