Bagaimana memanggil SQL Server disimpan prosedur dalam ASP.NET dengan menggunakan Visual Basic .NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 306574 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

Ringkasan

Artikel ini menunjukkan bagaimana untuk menggunakan ASP.NET dan ADO.NET dengan Visual Basic .NET untuk membuat dan untuk memanggil Microsoft SQL Server disimpan prosedur dengan parameter input dan output parameter.

Kode sampel ini artikel pertama cek apakah prosedur tersimpan bahwa Anda akan membuat ada di database. Jika prosedur tersimpan tidak ada, kode menciptakan disimpan prosedur yang mengambil satu parameter untuk Telisik Daftar Tabel penulis berdasarkan nama belakang dan gulung balik baris pencocokan dan jumlah baris yang dikembalikan dalam parameter output.

Artikel ini juga menunjukkan cara membuat formulir Web yang menyediakan pengguna sederhana antarmuka. Formulir Web berisi item berikut:
  • Kotak teks di mana pengguna jenis pencarian kondisi.
  • DataGrid kontrol yang menampilkan hasil pencarian.
  • Sebuah kontrol Label yang menampilkan jumlah record yang dikembalikan.
  • tombol tekan kontrol yang memanggil prosedur tersimpan ketika tombol tekan diklik.

Persyaratan

Daftar berikut menguraikan fitur peranti penangkap keras, peranti penangkap lunak, infrastruktur jaringan, dan Service Pack yang diperlukan:
  • Microsoft SQL Server versi 7.0 atau lebih baru
  • Microsoft Visual Studio .NET
  • Microsoft Visual Basic .NET
  • Izin untuk membuat prosedur tersimpan di database
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan berikut topik:
  • SQL Server disimpan prosedur

Membuat proyek ASP.NET dan menambahkan kontrol

Dalam bagian ini, Anda membuat sebuah proyek ASP.NET dan membangun Dasar antarmuka. Perlu diketahui bahwa langkah-langkah ini menggunakan Microsoft Visual Basic .NET kode. Untuk membuat proyek, ikuti langkah berikut:
  1. Klik mulai, arahkan ke program, arahkan ke Microsoft Visual Studio.NET, dan kemudian klik Microsoft Visual Studio.NET.
  2. Pada Visual Studio .NET mulai halaman, klik Proyek baru.
  3. Dalam Proyek baru kotak dialog, klik Visual Basic proyek di bawah Jenis proyek, dan kemudian klik ASP.NET Web Application di bawah template.
  4. Dalam kotak nama , ketik nama untuk aplikasi web Anda, dan kemudian klik OK.
  5. Menambah kontrol server berikut untuk formulir Web, dan mengatur sifat seperti tertera dalam tabel:
    Perkecil tabel iniPerbesar tabel ini
    KontrolProperti IDProperti teks
    LabellblLastNameKetik nama penulis:
    TextBoxtxtLastName%
    tombol tekanbtnGetAuthorsMendapatkan penulis
    LabellblRowCount(Baris hitung)

  6. Menyeret kontrol server DataGrid dari toolbox untuk formulir Web, dan kemudian menetapkan Nama properti untuk GrdAuthors.
  7. Klik kanan-atas grid, dan kemudian klik Autoformat.
  8. Klik 1 profesional untuk skema, dan kemudian klik OK.

Membuat GetAuthorsByLastName disimpan prosedur

Gunakan kode Transact-SQL berikut untuk membuat GetAuthorsByLastName disimpan prosedur:
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
				
Kode ini mencakup dua parameter: @au_lname dan @RowCount. The @au_lname parameter adalah parameter input yang memperoleh string pencarian untuk melakukan pencarian "seperti" dalam Daftar Tabel penulis . @RowCount parameter adalah parameter output yang menggunakan variabel @@ROWCOUNT untuk mendapatkan terkena baris.

Membuat dan menjalankan prosedur tersimpan

Untuk mengakses database SQL Server, Anda harus mengimpor namespace System.Data.SqlClient , yang menyediakan objek yang baru seperti SqlDataReader dan SqlDataAdapter objek. Anda dapat menggunakan SqlDataReader untuk membaca forward-only stream terhadap baris dari database SQL Server. DataAdapter mewakili satu set data perintah dan koneksi pangkalan data yang Anda dapat menggunakan untuk mengisi DataSet objek dan mengupdate database SQL Server.

ADO.NET juga memperkenalkan DataSet objek, yang adalah representasi penduduk-memori data yang menyediakan model pemrograman yang konsisten, relasional terlepas dari data sumber. Kode dalam bagian ini menggunakan semua benda-benda ini.
  1. klik ganda formulir Web.
  2. Tambahkan kode berikut ke bagian Deklarasi Anda Formulir web, yang muncul di bagian atas jendela kode:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Untuk memastikan bahwa prosedur tersimpan ada dan menciptakan disimpan prosedur yang baru, menggunakan SqlCommand objek dengan benda SqlDataReader . Anda dapat menggunakan SqlCommand untuk menjalankan perintah SQL apapun terhadap database. Kemudian memanggil metode ExecuteReaderSqlCommand untuk kembali SqlDataReader, yang berisi baris yang cocok untuk permintaan Anda.

    Tambahkan kode berikut dalam acara Page_Load dari formulir 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. Memanggil prosedur tersimpan dalam acara Klik tombol tekan btnGetAuthors , dan kemudian menggunakan objek SqlDataAdapter untuk menjalankan Anda disimpan prosedur. Anda harus membuat parameter untuk prosedur tersimpan dan menambahkan koleksi parameterSqlDataAdapter objek.

    Tambahkan kode berikut setelah acara Page_Load :
    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. Pada solusi Explorer, klik kanan-atas halaman .aspx, dan kemudian Klik Set sebagai halaman awal.
  6. Simpan project, dan kemudian klik mulai dalam Visual Studio .NET. Perhatikan bahwa proyek ini dikompilasi dan bahwa halaman default berjalan.
  7. Ketik nama terakhir penulis di kotak teks, dan kemudian klik Mendapatkan penulis. Pemberitahuan bahwa prosedur tersimpan disebut dan yang kembali baris mengisi DataGrid.

    Anda dapat memberikan string pencarian SQL Server-jenis sepertiG %, yang gulung balik semua penulis oleh terakhir nama yang mulai dengan huruf "G."

Pemecahan masalah

  • Jika Anda tidak dapat terhubung ke database, pastikan bahwa ConnectionString benar poin ke server yang menjalankan SQL Server.
  • Jika Anda dapat tautan langsung ke database, tetapi jika Anda mengalami masalah ketika Anda mencoba untuk membuat prosedur tersimpan, pastikan bahwa Anda memiliki perizinan yang benar untuk membuat prosedur tersimpan dalam database yang Anda tautan langsung.

Referensi

Untuk selengkapnya, lihat topik berikut dalam Microsoft .NET Framework Software Development Kit (SDK) dokumentasi:
Ikhtisar ADO.NET
http://msdn.Microsoft.com/en-US/Library/h43ks021.aspx

ADO.NET DataSet
.aspx http://msdn.Microsoft.com/en-US/Library/zb0sdh0b (VS.71)

Menggunakan penyedia Data .NET untuk mengakses Data
.aspx http://msdn2.Microsoft.com/en-US/Library/s7ee2dwt (vs.71)
Untuk informasi lebih lanjut, lihat buku berikut:
Wyke, R. Allen, dan Sultan Rehman dan Brad Leupen. XML pemrograman (Core referensi). Microsoft Press, 2001.
Untuk informasi lebih lanjut, lihat Training Microsoft berikut & Kursus sertifikasi:
2389 Pemrograman dengan ADO.NET
Untuk tambahan informasi tentang cara untuk melakukan tugas ini dengan menggunakan Microsoft Server aktif Halaman, klik nomor artikel di bawah ini untuk melihat artikel di Microsoft Basis pengetahuan:
300488 Bagaimana menjalankan SQL disimpan prosedur dari halaman ASP

Properti

ID Artikel: 306574 - Kajian Terakhir: 30 Mei 2013 - Revisi: 3.0
Berlaku bagi:
  • 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
Kata kunci: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 306574

Berikan Masukan

 

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