Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

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

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
Cho một phiên bản Microsoft Visual C# .NET này Bài viết, xem 320916.
Một hình ảnh Microsoft J# Net Phiên bản của bài viết này, xem 320622.
Cho một phiên bản Microsoft Visual Basic 6.0 này Bài viết, xem 164485.
Cho một phiên bản Microsoft Visual Basic 6.0 này Bài viết, xem 300488.

TRONG NHIỆM VỤ 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.
back to the top

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

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

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.

back to the top

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

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

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 306574 - Xem lại Lần cuối: 05/30/2013 10:06:00 - Bản sửa đổi: 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 KbMtvi
Phản hồi
>