Visual C# .NET kullanarak bir veritabanından bir DataSet nesnesini doldurmak nasıl

Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 301216.


Bu makalede aşağıdaki Microsoft .NET Framework sınıf kitaplığı ad alanına başvurur:

  • System.Data.SqlClient

BU GÖREVDE

Özet

DataSet nesnelerini, veri erişimi Microsoft .NET Framework, önemli bir parçası, tablolar, görünümler ve ilişkileri tutabilir bellek içi nesneleridir. Bu makalede, bir veya daha fazla veritabanı sorgu sonuçlarını bir DataSet nesnesini doldurun ve DataSet nesnesine yüklendikten sonra o veriye erişmek nasıl gösterir.

Gereksinimleri

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri önerilmektedir:

  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server veya Windows NT 4.0 Server

  • Microsoft SQL Server 7.0, Microsoft SQL Server 2000 veya Microsoft Data Engine yüklü Pubs örnek veritabanı ile

  • Microsoft Visual Studio .NET

Bu makalede şu konularda bilgi sahibi olduğunuz varsayılmaktadır:

  • Veritabanı terimleri

  • Yapılandırılmış sorgu dili (SQL)

Bir DataSet doldurma

Çeşitli nesneleri kullanarak gelen System.Data ad alanı içinde bir veritabanı sunucusuna bağlanmak, bir sorguyu çalıştırmak ve sonuçları bir DataSet nesnesine yerleştirmiş. DataSet bağlantısı kesilmiş bir nesnedir. Bu nedenle, veri yüklendikten sonra sunucu bilgileri, bellekteki kopyasını yaptığınız değişikliklerle güncelleştirmek veya daha fazla veri yüklemek istediğiniz kadar veritabanı bağlantısı artık kullanılır.

Verileri bir veritabanından bir DataSetnesnesine yüklemek için şu adımları izleyin:

  1. Visual Studio .NET'i başlatın.

  2. Visual C# .NET ile yeni bir konsol uygulama projesi oluşturun. Visual Studio .NET Static bir sýnýfýn boş bir ana yordamın yanı sıra, sizin için oluşturur.

  3. Proje sistemi ve System.Data ad başvurduğundan emin olun.

  4. Gelen bu ad daha sonra kodunuzda bildirimleri niteleme gerekmez böylece Sistem, System.Datave System.Data.SqlClient ad boşluklarına kullanarak deyimini kullanın. Bu ifadeler tüm diğer bildirimlerden önce kullanmalısınız.

    using System;
    using System.Data;
    using System.Data.SqlClient;
  5. Veri kümesi veritabanından veri almak için ilk adım, bir System.Data.SqlClient.SqlCommand nesnesi ve bağlantı dizesi gerektiren bir veritabanı bağlantısını belirtmektir. Kodu takip etmek için bağlantı dizesinde (kod çalıştığı bilgisayar) yerel bilgisayar üzerinde bulunan bir SQL Server sunucusuna bağlanır. Bu bağlantı dizesi, çalışma ortamınıza uygun şekilde değiştirmeniz gerekir. SqlConnection nesnesi oluşturulduktan sonra gerçek bir veritabanına bağlantı kurmak için bu nesnenin Open yöntemini çağırın.

    string sConnectionString;
    sConnectionString = "Password=myPassword;User ID=myUserID;"
    + "Initial Catalog=pubs;"
    + "Data Source=(local)";
    SqlConnection objConn
    = new SqlConnection(sConnectionString);
    objConn.Open();
  6. Veritabanı, DataSet nesnesi arasındaki bağlantıyı temsil eden bir DataAdapter nesnesi oluşturun. SQL veya başka bir DataAdapternesnesinin Oluşturucu nesnesinin parçası olarak veri almak için kullanılan komutun türünü belirtebilirsiniz. Bu örnek, Pubs veritabanındaki Authors tablosundaki kayıtları alan bir SQL deyimi kullanır.

    SqlDataAdapter daAuthors 
    = new SqlDataAdapter("Select * From Authors", objConn);
  7. Bildirmeli ve aynı zamanda herhangi bir veri yüklemeye başlamadan önce tüm veri kümesi için bir ad sağlayabilirsiniz bir DataSet nesnesinin bir örneğini oluşturun. Birkaç farklı tablo adı içerebilir.

    DataSet dsPubs = new DataSet("Pubs");
  8. Bu veri yükleme için önemli olan iki yöntem, FillSchema, Dolgu ve SqlDataAdapter sınıfı sağlar. Bu yöntemlerin her ikisi de bilgileri bir DataSetnesnesine yüklemek. Dolgu verileri yükler ve FillSchema tüm kullanılabilir meta veriler hakkında belirli bir tablo (örneğin, sütun adları, birincil anahtarlar ve kısıtlamaları) yükler. Yükleme verileri işlemek için en iyi yolu ile doldurunve ardından FillSchema çalıştırmaktır. Örneğin:

    daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");
    daAuthors.Fill(dsPubs,"Authors");

    Sadece Dolgukullanırsanız, yalnızca sütun adları ve veri türlerini tanımlamak için gereken temel meta veri yükleyebilir. Dolgu yöntemi, birincil anahtar bilgilerini yüklemez. Bu varsayılan davranışı değiştirmek için varsayılan bilgilerle birlikte birincil anahtar meta verileri yükler MissingSchemaAction.AddWithKeyiçin DataAdapter nesnesinin MissingSchemaAction özelliğini ayarlayabilirsiniz. Örneğin:

    daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    daAuthors.Fill(dsPubs,"Authors");
  9. Verileri DataSet tabloları koleksiyonu içindeki bağımsız bir DataTable nesnesi olarak kullanıma sunulmuştur. Çağrıları FillSchema ve doldurmakiçin bir tablo adı belirttiyseniz, erişmek istediğiniz belirli bir tablo için bu adı kullanabilirsiniz.

    DataTable tblAuthors;
    tblAuthors = dsPubs.Tables["Authors"];
  10. DataTablenesnesinin Rows koleksiyonu içindeki tüm DataRow nesneleri arasında gezinmek için bir For Each döngüsü kullanabilirsiniz. Bu tablonun her satırı için erişim sağlar. ('İlk sütun konumu olan 0') adıyla veya konumsal dizin sütunlar erişebilirsiniz. Örneğin:

    foreach (DataRow drCurrent in tblAuthors.Rows)
    {
    Console.WriteLine("{0} {1}",
    drCurrent["au_fname"].ToString(),
    drCurrent["au_lname"].ToString());
    }
    Console.ReadLine();
  11. Projenizi kaydedin. Hata ayıklama menüsünde, projeyi çalıştırın ve onu çalıştığından emin olmak için Başlat ' ı tıklatın.


Tam kod listesi

using System;
using System.Data;
using System.Data.SqlClient;

namespace PopulateDataSet
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
static void Main(string[] args)
{
string sConnectionString;
sConnectionString = "Password=myPassword;User ID=myUserID;"
+ "Initial Catalog=pubs;"
+ "Data Source=(local)";
SqlConnection objConn
= new SqlConnection(sConnectionString);
objConn.Open();

SqlDataAdapter daAuthors
= new SqlDataAdapter("Select * From Authors", objConn);
DataSet dsPubs = new DataSet("Pubs");
daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");
daAuthors.Fill(dsPubs,"Authors");

DataTable tblAuthors;
tblAuthors = dsPubs.Tables["Authors"];

foreach (DataRow drCurrent in tblAuthors.Rows)
{
Console.WriteLine("{0} {1}",
drCurrent["au_fname"].ToString(),
drCurrent["au_lname"].ToString());
}
Console.ReadLine();
}
}
}

Başvurular

ADO.NET hakkında daha fazla bilgi için DataSet nesnelerini ve SQL, aşağıdaki Microsoft Web sitelerine bakın:

"Veri Eriºimi'ne Dalma" ( MSDN Sesler sütun Dino Esposito tarafından)
http://msdn2.microsoft.com/en-us/library/ms810293.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/en-us/netframework/default.aspx

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×