Bir veritabanına bağlanmak ve ADO.NET 2005 ve Visual C# 2005 kullanarak veya ADO.NET ve Visual C#. NET'i kullanarak bir komutu çalıştırmak için

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

Bu Sayfada

Özet

Bu adım adım makalede, ADO.NET 2005 veya ADO.NET bir veritabanına bağlanmak ve bir komutu çalıştırmak için nasıl kullanılacağını gösterir.

Gereksinimler

Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, veya Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 veya Microsoft Visual Studio .NET
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • Veritabanı terminolojisi
  • Yapılandırılmış sorgu dili (SQL)

Bir komut çalıştırma

Komutlar, veritabanlarının veri depolarına göre eylemleri gerçekleştirmesini ve verilen bir veritabanında herhangi bir ifade karşı verilir. Komut, veri deposuna almak için OleDbCommand veya SqlCommand sınıfları kullanabilir ve OleDbCommand veri deposunun belirli olabilir. SqlClient sınıfı, (Microsoft SQL Server çalıştıran bir bilgisayara bağlanmak için <a0></a0>) hem de OleDb sınıfı (veritabanları bir OLE DB veya ODBC sürücüsü kullanılabilir olduğu) için bu makaleyi gösterir ADO.NET içinde. Ancak genellikle her ikisi için aynı kodudur.

ADO ile Command, Connection veya Recordset nesnesi ile komutları yayımlayabilir. ADO.NET, yalnızca Command nesnesini (SqlCommand veya OleDbCommand) komutlarını çalıştırın.

Bir komutu çalıştırmak için <a0></a0>, aşağıdaki adımları izleyin:
  1. Microsoft Visual C# .NET veya Microsoft Visual C# 2005'te yeni bir konsol uygulaması oluşturmak için şu adımları izleyin:
    1. Microsoft Visual Studio 2005 veya Microsoft Visual Studio. NET'i başlatın.
    2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
    3. Yeni proje) iletişim kutusunda, Project Types altında Visual C# Projects ' ı tıklatın ve şablonları altında Console Application ' ı tıklatın.

      Not Visual Studio 2005, Visual C#Project TypesNew Project</a0> iletişim kutusunda altında tıklatın ve şablonları altında Console Application ' ı tıklatın.
  2. Projenizi System.Data ad boşluğuna başvuru içerdiğinden emin olun ve yoksa, bir başvuru ekleyin.
  3. Kodunuzu daha sonra bu ad boşluklarında bildirimlerinde geçerli olması için deyimi kullanarakSistem ve System.Data ad kullanın. System.Data.SqlClient veya System.Data.OLEDB hangisinin bağlı kullanıyorsanız, de ekleyebilirsiniz.
    using System;
    using System.Data;
    using System.Data.SqlClient;
    					
  4. Bir veritabanı bağlantısı oluşturmak için önce bir bağlantı dizesi olmalıdır. Bağlantı dizesi sunucu adı, veritabanı adı, kullanıcı KIMLIĞI ve parola da dahil olmak üzere, bir veritabanı bağlantısı kurmak için gereken tüm bilgileri içerir. Örneğin, aşağıdaki bağlantı dizesini SQL Server çalıştıran bir yerel bilgisayara gösteriyor:

    OleDb bağlantıları için:

    NotKullanıcı KIMLIĞI <uid>veritabanında bu işlemleri gerçekleştirmek için uygun izinleriniz olmalıdır.
    Provider=SQLOLEDB.1;User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    Için SqlClient bağlantıları:
    User ID=<UID>;Initial Catalog=pubs;Data Source=(local)
    						
    bağlantı belirleme daha fazla yardıma gereksinim Not dize search for "ConnectionString" Microsoft Developer Network (MSDN) kitaplığı, veritabanınızın:
    http://msdn.microsoft.com/en-us/default.aspx
  5. Visual Studio, statik bir sınıf ve boş bir Main() yordamı oluşturur. Bir dize değişkeni bildirmek ve bu yordamda veritabanınız için uygun bağlantı dizesini depolamak.

    NotKullanıcı KIMLIĞI <uid>veritabanında bu işlemleri gerçekleştirmek için uygun izinleriniz olmalıdır.
    class Class1
    {
    	static void Main(string[] args)
    	{
    		string sConnectionString = 
    "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
    	}
    }
    					
  6. Bu bağlantı dizesini kullanarak yeni bir OleDbConnection veya SqlConnection nesnesi oluşturur ve veritabanınızla bağlantı kurmak için Open yöntemi çağrısı:
    SqlConnection objConn = new SqlConnection(sConnectionString);
    objConn.Open();
    					
  7. Bir ya da OleDbCommandSqlCommand nesnesi oluşturmak ve çalıştırmak istediğiniz komutu ve bir önceki adımda oluşturduğunuz bağlantı nesnesi geçirin. Aşağıdaki örnek kod INSERT deyiminde geçirir:
    string sSQL = "INSERT INTO Employee " + 
      "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 
      "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
    SqlCommand objCmd = new SqlCommand(sSQL,objConn);
    					
  8. Ya da OleDbCommandSqlCommand nesnesi oluşturduktan sonra onu temsil eden komutu çalıştırmak için ExecuteNonQuery yöntemini çağırabilirsiniz. ExecuteNonQuery (örneğin, DELETE, UPDATE ve INSERT deyimlerini) herhangi bir sonuç döndüren komutlar için tasarlanmıştır. Bir özel durum üretiliyor olmadan deyimi çalıştırır (aşağıdaki kodu görüyorsanız), veritabanında komutu başarıyla çalıştırıldı.
    objCmd.ExecuteNonQuery();
    					
  9. Projenizi kaydetmek. Hata Ayıkla) menüsünde, veritabanında komutu çalıştırmak için Başlat ' ı tıklatın.

Parametrelerin nasıl kullanılır?

Bir veritabanıyla komutlarını çalıştırdığınızda (GÜNCELLEŞTIRME, INSERT ve DELETE deyimleri veya çağrı saklı yordamları), bu komutlar sık olarak parametreli. Bu komutu bir kez oluşturuldu ancak parametreleri yerine eklenen farklı değerlerle birden çok kez yürütülmüş sağlar. Ilgili DELETE deyiminde önceki bölümünde kullanılan bir INSERT deyimi için göz önünde bulundurun:
string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id"
				
bu DELETE deyimi parametre adı ("@ emp_id") komutu her çalıştırmanızda farklı değerlerle değiştirmek çok parametre temsil eder.

Parametreleri komutu ile kullanmak için aşağıdaki adımları izleyin:
  1. "How to run a command" bölümünde olduğu gibi OleDbConnection veya SqlConnection nesnesi oluşturun.
  2. Parametreleri kullanmayacağından komut metni değerlerini yer tutucuları (örneğin, "@ emp_id" veya "@ fname") olarak değiştirin. Bir örnek için aşağıdaki adımları önce <a2>DELETE</a2> açıklamasına bakın.
  3. Sizin OleDbCommand veya SqlCommand nesnesi oluşturmak ve oluşturduğunuz ilk adım ve parametre yer tutucular içeren bir komut metni bağlantı nesnesindeki aktarmak.
  4. Her parametre için bir parametre nesnesi komut nesnesinin parametrelerini derlemesine ekleyin. Her parametre için bir ad ve veri türü belirtmelisiniz.
    objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
    					
  5. Saklı yordamlar, dönüş ve parametre çıkış parametreleri olabilir. Sorguyu çalıştırmadan önce parametreyi her giriş için bir değer de ayarlamanız gerekir:
    objCmd.Parameters["@emp_id"].Value = "MSD12923F";
    					
  6. Sorguyu aşağıdaki gibi çalıştırın:
    try 
    {
    	objCmd.ExecuteNonQuery();
    }
    catch (System.Exception e) 
    {
    	Console.WriteLine(e.Message);
    }
    Console.WriteLine("Record Deleted");
    					

Tam kod listesi

NotKullanıcı KIMLIĞINI değiştirmeniz gerekir, bu kodu çalıştırmadan önce <uid>için doğru değerler =. <uid>Veritabanında bu işlemi gerçekleştirmek için uygun izinlere sahip olduğundan emin olun.
using System;
using System.Data;
using System.Data.SqlClient;

    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
	static void Main(string[] args)
	{
		AddRecord();
		RemoveRecord();
		Pause();
	}

	static void Pause()
	{
		Console.WriteLine("Press Enter To Continue....");
		Console.ReadLine();
	}

	static void AddRecord()
	{
		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
		SqlConnection objConn = new SqlConnection(sConnectionString);
		objConn.Open();
		string sSQL = "INSERT INTO Employee " + 
		  "(emp_id, fname, minit, lname, job_id, job_lvl, pub_id, hire_date) " + 
	          "VALUES ('MSD12923F', 'Duncan', 'W', 'Mackenzie', 10, 82,'0877','2001-01-01')";
		SqlCommand objCmd = new SqlCommand(sSQL,objConn);
		try 
		{
			objCmd.ExecuteNonQuery();
			}
		catch (System.Exception e) 
		{
			Console.WriteLine(e.Message);
		}
		Console.WriteLine("Record Added");
	}

	static void RemoveRecord()
	{
		string sConnectionString = "User ID=<UID>;Initial Catalog=pubs;Data Source=(local)";
		SqlConnection objConn = new SqlConnection(sConnectionString);
		objConn.Open();
		string sSQL = "DELETE FROM Employee WHERE emp_id = @emp_id";
		SqlCommand objCmd = new SqlCommand(sSQL,objConn);
		objCmd.Parameters.Add("@emp_id", SqlDbType.Char, 9);
		objCmd.Parameters["@emp_id"].Value = "MSD12923F";
		try 
		{
			objCmd.ExecuteNonQuery();
		}
		catch (System.Exception e) 
		{
			Console.WriteLine(e.Message);
		}
		Console.WriteLine("Record Deleted");
	}
} 
				

Referanslar

ADO.NET, saklı yordamlar ve veritabanı komutlarını kullanma hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini ziyaret edin:
SQL Server 2000, depolanan yordamlar
http://msdn2.microsoft.com/en-us/library/aa214299(SQL.80).aspx

", Verileri Access'e diving" MSDN Sesler sütun
http://msdn2.microsoft.com/en-us/library/ms810295.aspx

ADO programcısı için ADO.NET
http://msdn2.microsoft.com/en-us/library/ms973217.aspx

MSDN Online .NET Geliştirici Merkezi
http://msdn.microsoft.com/net
Daha fazla bilgi için aşağıdaki kitaba bakın:
Kemal ve CAN Jagger diyez. Microsoft Visual C# .NET Step by Step. Microsoft Press, 2003.
Daha fazla bilgi için aşağıdaki Microsoft Eğitim & sertifika kurs bakın:
ADO.NET ile 2389 programlama
http://www.microsoft.com/learning/syllabi/en-us/2389Bfinal.mspx

Özellikler

Makale numarası: 306636 - Last Review: 17 Ağustos 2007 Cuma - Gözden geçirme: 4.9
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Anahtar Kelimeler: 
kbmt kbhowtomaster kbsqlclient kbsystemdata KB306636 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:306636

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