NASıL YAPıLıR: SQL Server arama yordamlar ASP.NET'te Visual C# .NET kullanarak depolanan

Makale çevirileri Makale çevirileri
Makale numarası: 320916 - 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 Visual C# .NET ile oluşturmak için nasıl kullanılacağı gösterilmektedir ve saklı yordamını bir girdi parametresini ve bir çıkış parametresi olan bir Microsoft SQL Server'ı çağırmak için.

Bu makaledeki kod örneğini, oluşturacağınız saklı yordamın standart bir Microsoft SQL Server yüklemesi içindedir pubs veritabanındaki var olup olmadığını denetler. Saklı yordamın yoksa, kod Authors tablosu son adına göre aramak için bir parametre alır ve eşleşen satır ve bir çıkış parametresi döndürülen satırların sayısını verir saklı bir yordam oluşturur.

Bu makalede ayrıca bir Basit kullanıcı arabirimi sağlayan form oluşturulması gösterilmiştir. Web formu, aşağıdaki öğeleri içerir:
  • Metin kutusu, kullanıcı arama koşulu yazar.
  • Arama sonuçlarını görüntüleyen BIR DataGrid denetimi.
  • Dönen kayıt sayısını görüntüleyen Etiket denetimlerdir.
  • Düğme tıklatıldığında saklı yordamı çağıran Düğme denetimlerdir.

Gereksinimler

Aşağıdaki listede, gereksinim duyulan donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft SQL Server sürüm 7.0 veya sonrası
  • Microsoft Visual Studio. NET'i
  • Microsoft Visual C# .NET
  • Veritabanında saklı yordam oluşturma izinleri
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • ASP.NET
  • SQL Server saklı yordamlar

Bir ASP.NET proje oluşturma ve denetimleri ekleme

Bu bölümde, ASP.NET projesinde oluşturmak ve temel kullanıcı arabirimi oluştur. Bu adımlar, Microsoft Visual C# .NET kod kullandığını unutmayın. Projeyi oluşturmak için <a0></a0>, aşağıdaki adımları izleyin:
  1. Başlat ' ı tıklatın, Programlar ' ın üzerine gelin, Visual Studio.NET ' i işaretleyin ve Visual Studio.NET</a1>'ı tıklatın.
  2. Visual Studio .NET ve başlangıç sayfasında Yeni proje) tıklatın.
  3. Yeni proje) iletişim kutusunda, Project Types altında Visual C# Projects ' ı tıklatın ve sonra şablonları altında ASP.NET Web uygulaması ' ı tıklatın.
  4. Adı kutusuna, Web uygulamanızın adını yazın ve Tamam ' ı tıklatın.
  5. Aşağıdaki sunucu denetimleri Web forma ekleyin ve tabloda listelenen özellikleri ayarlayın:
    Bu tabloyu kapaBu tabloyu aç
    DenetimKIMLIK özelliğiMetin özelliği
    EtiketlblLastNameYazarın soyadı yazın:
    TextBoxtxtLastName%
    DüğmebtnGetAuthorsYazarlar alın
    EtiketlblRowCount(Satır sayısı)

  6. Bir <a0>DataGrid</a0> sunucu denetimi, Web formu için araç kutusundan sürükleyin ve sonra da Name özelliği GrdAuthors için ayarlayın.
  7. Kılavuz'ı sağ tıklatın ve sonra Otomatik Biçim ' i tıklatın.
  8. Düzeni için Professional 1 ' i tıklatın ve sonra Tamam ' ı tıklatın.

GetAuthorsByLastName oluşturma saklı yordamı

GetAuthorsByLastName saklı yordamı oluşturmak için aşağıdaki Transact-SQL kodu kullanın:
Use Pubs
Go
Create Procedure GetAuthorsByLastName (@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 parametresi Authors tablosundaki "gibi" arama gerçekleştirmek için arama dizesi aldığı giriş parametresidir. @ RowCount parametre @@ ROWCOUNT değişken etkilenen satırları'nı edinmek için kullandığı bir çıkış parametresidir.

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

SQL Server veritabanlarına erişmek için <a0></a0>, SqlDataReader gibi yeni nesneler ve SqlDataAdapter nesneleri sağlayan System.Data.SqlClient ad almanız gerekir. Salt ileri akışı satırları, bir SQL Server veritabanından okunamıyor, SqlDataReader kullanabilirsiniz. DataAdapter veri komutları ve DataSet nesnesi doldurun ve SQL Server veritabanını güncelleştirmek için kullanabileceğiniz bir veritabanı bağlantısını temsil eder.

ADO.NET de tutarlı, ilişkisel bir programlama modeli bağımsız bir veri kaynağı olarak veren bir veri bellekte yerleşik kalan bir gösterimi olan DataSet nesnesi tanıtır. Bu kod, bu nesnelerin tüm kullanır.
  1. Web formu çift tıklatın.
  2. Aşağıdaki kodu (kullanma yönergeleri), Web <a0>Kod</a0> penceresinin en üstünde görüntülenen form, Beyanname bölümüne ekleyin:
    using System.Data;
    using System.Data.SqlClient;
    					
  3. Bir SqlCommand nesnesi, saklı yordamı var olduğundan emin olun ve yeni bir saklı yordam oluşturmak için bir SqlDataReader nesnesiyle kullanın. SqlCommand, veritabanında herhangi bir SQL komutları çalıştırmak için kullanabilirsiniz. Sonra sorgunuzun eşleşen satırları içeren SqlDataReader, döndürülecek SqlCommandExecuteReader yöntemini çağırın.

    Web formu Page_Load olayı aşağıdaki kodu ekleyin:
    	private void Page_Load(object sender, System.EventArgs e)
    	{
    		// 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 (!IsPostBack)
    		{
    			//Create a connection to the SQL Server; modify the connection string for your environment
    			//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");
    			SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");
    
    			// Create a Command object, and then set the connection.
    			// The following SQL statements check whether a GetAuthorsByLastName  
    			// stored procedure already exists.
    			SqlCommand MyCommand = new SqlCommand("select * from sysobjects where id = object_id(N'GetAuthorsByLastName')" +
    			"  and OBJECTPROPERTY(id, N'IsProcedure') = 1", MyConnection);
    
    			// Set the command type that you will run.
    			MyCommand.CommandType = CommandType.Text;
    
    			// Open the connection.
    			MyCommand.Connection.Open();
    
    			// Run the SQL statement, and then get the returned rows to the DataReader.
    			SqlDataReader MyDataReader = MyCommand.ExecuteReader();
    
    			// If any rows are returned, 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(!MyDataReader.Read())
    			{
    				MyCommand.CommandText = "create procedure GetAuthorsByLastName" + 
    					" (@au_lname varchar(40), select * from authors where" +
    					" au_lname like @au_lname; select @RowCount=@@ROWCOUNT";
    				MyDataReader.Close();
    				MyCommand.ExecuteNonQuery();
    			}
    			else
    			{
    				MyDataReader.Close();
    			}
    
    			MyCommand.Dispose();  //Dispose of the Command object.
    			MyConnection.Close(); //Close the connection.
    		}
    
    		// Add the event handler to the Button_Click event.
    		this.btnGetAuthors.Click += new System.EventHandler(this.btnGetAuthors_Click);
    	}
    					
  4. Saklı yordamın btnGetAuthors düğmesini tıklatarak olayı arayın ve SqlDataAdapter nesnesi, saklı yordamı çalıştırmak için kullanın. Depolanmış yordamın parametrelerini oluşturun ve bunu SqlDataAdapter nesnesinin Parameters derlemesine eklemek gerekir.

    Page_Load olayından sonra aşağıdaki kodu ekleyin:
    	private void btnGetAuthors_Click(object sender, System.EventArgs e)
    	{
    		//Create a connection to the SQL Server; modify the connection string for your environment.
    		//SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;Trusted_Connection=yes");
    		SqlConnection MyConnection = new SqlConnection("server=(local);database=pubs;UID=myUser;PWD=myPassword;");
    
    		//Create a DataAdapter, and then provide the name of the stored procedure.
    		SqlDataAdapter 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 = (txtLastName.Text).Trim();
    
    		//Create and add an output parameter to the Parameters collection. 
    		MyDataAdapter.SelectCommand.Parameters.Add(new SqlParameter("@RowCount", SqlDbType.Int, 4));
    
    		//Set the direction for the parameter. This parameter returns the Rows that are returned.
    		MyDataAdapter.SelectCommand.Parameters["@RowCount"].Direction = ParameterDirection.Output;
    
    		//Create a new DataSet to hold the records.
    		DataSet DS = new DataSet();
    		
    		//Fill the DataSet with the rows that are returned.
    		MyDataAdapter.Fill(DS, "AuthorsByLastName");
    
    		//Get the number of rows returned, and 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;
    
    		//NOTE: If you do not call this method, the DataGrid is not displayed!
    		GrdAuthors.DataBind();
    
    		MyDataAdapter.Dispose(); //Dispose the DataAdapter.
    		MyConnection.Close(); //Close the connection.
    	}
    					
  5. Solution Explorer'da (Çözüm Gezgini), .aspx sayfası'nı sağ tıklatın ve sonra da <a2>Başlangıç sayfası olarak ayarla</a2>'ı tıklatın.
  6. Projeyi kaydedin ve sonra da <a2>Visual Studio. NET'te Başlat</a2>'ı tıklatın. Proje derlenmiş ve varsayılan sayfa çalıştığını göreceksiniz.
  7. Yazarın Soyadı metin kutusuna yazın ve sonra Yazar Al'ı tıklatın. Saklı yordamın adı verilen ve döndürülen satırları, DataGrid doldurmak dikkat edin.

    SQL Server türü arama dizeleri tarafından son adları "G" harfi ile başlayan tüm yazarlar döndüren G % gibi sağlayabilir

SORUN GİDERME

  • Veritabanına bağlanamıyor, ConnectionString düzgün SQL Server çalıştıran sunucuya işaret ettiğinden emin olun.
  • Veritabanına bağlanmak ancak saklı yordam oluşturmaya çalıştığınızda sorunlarla karşılaşırsanız emin olun, bağlanmakta veritabanında saklı yordamlar oluşturma için doğru izinlere sahip.

Özellikler

Makale numarası: 320916 - Last Review: 5 Aralık 2003 Cuma - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ADO.NET (included with the .NET Framework)
  • Microsoft ADO.NET 1.1
  • Microsoft ASP.NET (included with the .NET Framework)
  • Microsoft ASP.NET 1.1
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbsqlclient kbstoredproc kbsystemdata KB320916 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:320916

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