sql Server nasıl asp.net Visual Basic .NET kullanarak saklı yordamları

Makale çevirileri Makale çevirileri
Makale numarası: 306574 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, asp.net ve ado.net nasıl kullanılacağı gösterilmektedir. Visual Basic .NET ile oluşturmak ve bir Microsoft sql Server saklı çağırmak için yordam giriş parametresi ve bir çıkış parametresi.

Kodu Bu örnek ilk denetimleri olup makale musun saklı yordam oluşturmak veritabanında yok. Saklı yordam yoksa kodu Authors tablosu son adına göre aramak için bir parametre alan bir saklı yordam oluşturur ve eşleşen satırları döndürür ve bir çıktı parametresinde döndürülen satır sayısı.

Bu makalede Ayrıca, basit bir kullanıcı sağlayan bir Web formu oluşturma gösterilmiştir arabirim. Web formu aşağıdaki öğeleri içerir:
  • Kullanıcı arama türleri içinde bir metin kutusu koşul.
  • Arama sonuçlarını görüntüleyen bir DataGrid denetim.
  • Dönen kayıt sayısını görüntüleyen bir Label denetimi.
  • Bu düğmeyi, saklı yordam çağrıları bir Button denetimi tıklattınız.

Gereksinimleri

Aşağıdaki listede önerilen donanım, yazılım önerilmektedir, ağ altyapısı ve gereken hizmet paketleri:
  • Microsoft sql Server sürüm 7.0 veya sonrası
  • Microsoft Visual Studio .NET
  • Microsoft Visual Basic .NET
  • İzinleri, saklı yordam oluşturmak için Veritabanı
Bu makalede, aşağıdaki bilgi sahibi olduğunuzu varsayar Konular:
  • sql Server saklı yordamları

asp.net proje oluşturduğunuzda ve denetimler

Bu bölümde, asp.net projesi oluşturabilir ve yapı temel kullanıcı arabirimi. Not Bu adımlar Microsoft Visual Basic .NET kullanma kodu. Projeyi oluşturmak için aşağıdaki adımları izleyin:
  1. Başlat' ı tıklatın, Programlar' ın, Microsoft Visual Studio.netiçin işaretleyin ve sonra Microsoft Visual Studio.net' i tıklatın.
  2. Visual Studio .NET Başlat sayfasında, New Projectkomutunu tıklayın.
  3. Yeni Proje iletişim kutusunda, Visual Basic projeleriProje türlerialtında tıklatın ve Şablonlaraltında asp.net Web uygulaması ' nı tıklatın.
  4. Ad kutusuna, Web uygulamanız için bir ad yazın ve sonra Tamam' ı tıklatın.
  5. Aşağıdaki sunucu denetimleri Web formu ekleyin ve ayarlayın Özellikler tabloda verilen gibi:
    Bu tabloyu kapaBu tabloyu aç
    DenetimID özelliğiText özelliği
    EtiketlblLastNameYazarın Soyadı yazın:
    Metin kutusutxtLastName%
    DüğmebtnGetAuthorsYazarlar alın
    EtiketlblRowCount(Satır sayısı)

  6. DataGrid sunucu denetimi, Web formu araç kutusundan sürükleyin ve daha sonra Name özelliği GrdAuthors.
  7. Kılavuzunu sağ tıklatın ve sonra Otomatik Biçim' i tıklatın.
  8. Professional 1 için Düzen'i tıklatın ve sonra Tamam' ı tıklatın.

GetAuthorsByLastName oluşturma saklı yordamı

Aşağıdaki Transact-sql kodu oluşturmak için kullanın GetAuthorsByLastName saklı yordamını:
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
				
Bu kod, iki parametre içerir: @au_lname ve @RowCount. , @au_lname arama dizesini alır bir girdi parametresini parametresidir yazarlar tablosunda "ister" bir arama gerçekleştirin. @RowCount parametresi kullanan bir çıktı parametresi etkilenen satır elde etmek için @@rowcount değişkeni.

Oluştur ve saklı yordam Çalıştır

sql Server veritabanlarına erişmek için yeni nesneler gibi SqlDataReader ve SqlDataAdapter nesnelerini sağlar System.Data.SqlClient ad alanı içe aktarmanız gerekir. Bir salt ileri akışı satır bir sql Server veritabanından okunamıyor, SqlDataReader kullanabilirsiniz. DataAdapter komutları veri ve veritabanı bağlantısı kümesi temsil eder, DataSet nesnesini doldurmak için ve sql Server veritabanını güncelleştirmek için kullanabilirsiniz.

ADO.NET Ayrıca, verilerin bellekte gösterimi olan DataSet nesnesine tanıtır, tutarlı, ilişkisel bir programlama modeli ne olursa olsun veriler sağlar. Kaynak. Bu bölümdeki kod tüm bu nesneleri kullanır.
  1. Web formu çift tıklatın.
  2. Bildirim bölümüne aşağıdaki kodu ekleyin, Web formu, kod penceresinin üst kısmında görüntülenir:
    Imports System.Data
    Imports System.Data.SqlClient
    					
  3. Saklı yordam var olduğundan emin olun ve oluşturmak için Yeni bir saklı yordam, kullanın bir SqlCommand nesnesi olan bir SqlDataReader nesnesi. SqlCommand , veritabanında herhangi bir sql komutları çalıştırmak için kullanabilirsiniz. Daha sonra sorgu için eşleşen satırları içeren SqlDataReader, geri dönmek için SqlCommand nesnesinin ExecuteReader yöntemini çağırın.

    Ekle Aşağıdaki kod Web formunun Page_Load olay:
    '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. BtnGetAuthors düğmesinin Click olayı saklı yordam çağrısı ve SqlDataAdapter nesnesi, saklı yordamı çalıştırmak için kullanın. Parametreleri oluşturmalısınız. saklı yordama ilişkin ve SqlDataAdapter nesnesinin Parameters derlemesine ekleyin.

    Page_Load olay sonra aşağıdaki kodu ekleyin:
    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. .Aspx sayfasına Solution Explorer'da sağ tıklatın ve sonra ' ı tıklatın Başlangıç sayfası olarak ayarla.
  6. Projeyi kaydedin ve Visual Studio .NET içinde Başlat ' ı tıklatın. Proje derlenir dikkat edin ve Varsayılan sayfa olduğunu çalışır.
  7. Yazarın Soyadı metin kutusuna yazın ve sonra'ı tıklatın Yazar alın. Saklı yordam adı verilen notu ile birlikte, döndürülen DataGridsatırları doldurun.

    sql Server türü arama dizeleri gibi sağlayabilir.G %, tüm yazarlar tarafından son döndüğü, adları "G" harfi ile Başlat

Sorun giderme

  • Veritabanına bağlantı kuramazsanız, ConnectionString düzgün sql çalıştıran sunucuya işaret ettiğinden emin olun Sunucu.
  • Veritabanına bağlayabilirsiniz ancak karşılaştığınız saklı yordam oluşturmaya çalıştığınızda sorunlara sahip olduğunuzdan emin olun veritabanında saklı yordamlar oluşturmak için doğru izinleri Bağlanmakta olduğunuz.

Referanslar

Daha fazla bilgi için aşağıdaki konulara bakın. Microsoft .NET Framework Software Development Kit (sdk) belgeleri:
ado.net genel bakış
http://msdn.microsoft.com/en-us/library/h43ks021.aspx

ado.net DataSet
http://msdn.microsoft.com/en-us/library/zb0sdh0b (vs.71) .aspx

Verilere erişmek için .NET veri sağlayıcı kullanma
http://msdn2.microsoft.com/en-us/library/s7ee2dwt (vs.71) .aspx
Daha fazla bilgi için aşağıdaki kitaba bakın:
Wyke, r. Göktepe ve Sultan Rehman ve Brad Leupen. xml Programlama (temel başvuru). Microsoft Press, 2001.
Daha fazla bilgi için bkz: aşağıdaki Microsoft Training & Sertifika kursu:
ado.net ile 2389 programlama
İçin ek Microsoft Active Server kullanarak bu görevi gerçekleştirme hakkında bilgi Sayfaları, Microsoft makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Bilgi Bankası:
300488 Saklı yordamlar bir asp sayfasından sql çalıştırma

Özellikler

Makale numarası: 306574 - Last Review: 27 Aralık 2012 Perşembe - Gözden geçirme: 8.0
Bu makaledeki bilginin uygulandığı durum:
  • 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
Anahtar Kelimeler: 
kbhowtomaster kbsqlclient kbsystemdata kbmt KB306574 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 306574

Geri Bildirim Ver

 

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