DataSet, Microsoft .NET Framework, veri erişim anahtarı bir parçası, tablolar, görünümler ve ilişkilerini tutan bellek içi nesneleri nesneleridir. Bu makalede, bir
DataSet nesnesi bir veya daha fazla veritabanı sorgularını sonuçlarıyla doldurmak ve bu
DataSet nesnesine yüklendikten sonra verilere gösterilmektedir.
Gereksinimler
Aşağıdaki listede, gereksinim duyacağınız donanım, yazılım, ağ altyapısı ve hizmet paketleri önerilmektedir:
- Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Server veya Windows NT 4.0 Server Gelişmiş...
- Microsoft SQL Server 7.0, Microsoft SQL Server 2000 veya Microsoft Data Engine yüklü Pubs Örnek veritabanı
- Microsoft Visual Studio. NET'i
Bu makalede, aşağıdaki konularda bilgi sahibi olduğunuz varsayılmaktadır:
- Veritabanı terminolojisi
- Yapılandırılmış sorgu dili (SQL)
Bir DataSet doldurma
Nesneleri çeşitli gelen
System.Data ad alanı içinde bir veritabanı sunucusuna bağlanmak, bir sorgu çalıştırdığınızda ve sonuçları bir
DataSet nesnesine yerleştirdiğiniz.
DataSet, bağlantısı kesilen bir nesnedir. Sonra verileri yeniden yüklenir, daha fazla veri yüklenemedi veya sunucu için bilgileri bellek içindeki kopyasını yaptığınız değişikliklerle güncelleştirmek istediğiniz kadar bu nedenle, veritabanı bağlantısı artık kullanılmamaktadır.
Verileri bir veritabanından bir
DataSet içinde yüklemek için <a0></a0>, aşağıdaki adımları izleyin:
- Visual Studio .NET'i başlatın.
- Yeni bir konsol uygulaması) projesi, Visual C# .NET ile oluşturun. Visual Studio. NET'in bir statik sınıfı, boş bir ana yordamın birlikte oluşturur.
- Proje, Sistem ve System.Data ad başvuran emin olun.
- Bu ad boşluklarında kodunuzu daha sonra gelen bildirimleri nitelemek için gerekli değildir, kullanarakSistem ve System.DataSystem.Data.SqlClient ad kullanmak. Bu deyimleri tüm diğer bildirimlerden önce kullanmalısınız.
using System;
using System.Data;
using System.Data.SqlClient;
- DataSet veritabanından veri almanın ilk System.Data.SqlClient.SqlCommand bir nesne ve bir bağlantı dizesi gerektiren bir veritabanı bağlantısı kurmak için adımıdır. Bağlantı dizesinde izlemek için bu kodu (kod çalıştığı bilgisayar) yerel bilgisayarda bulunan bir SQL Server sunucusuna bağlanır. Bu bağlantı dizesini ortamınıza uygun olarak değiştirmelisiniz. SqlConnection nesne 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();
- DataSet nesneniz ile veritabanı arasındaki bağlantıyı temsil eden bir DataAdapter nesnesi oluşturun. SQL veya başka türde bir DataAdapter oluşturucu nesnesinin bir parçası olarak veri almak için kullanılan komut belirtebilirsiniz. Bu örnek pubs veritabanındaki Authors tablosundaki kayıtları alır, bir SQL deyimi kullanır.
SqlDataAdapter daAuthors
= new SqlDataAdapter("Select * From Authors", objConn);
- Bildirmek ve hangi zamanda herhangi bir veriyi geri yüklemeye başlamadan önce tüm DataSet için bir ad tedarikini sağlayabilecek bir DataSet nesnesinin bir örneğini oluşturmak gerekir. Ad, birkaç farklı tablo içerebilir.
DataSet dsPubs = new DataSet("Pubs");
- SqlDataAdapter sınıfı, bu veri yükleme için önemli olan iki yöntem, Dolgu ve FillSchema, sağlar. Bu yöntemlerin her ikisi de bir DataSet içinde bilgileri yüklenemedi. Verinin kendisi doldurma ' ı yükler ve FillSchema tüm kullanılabilir meta verileri (örneğin, sütun adları, birincil anahtar ve kısıtlamaları) belirli bir tablo hakkında yükler. Yükleme verileri işlemek için en iyi yolu, Dolgu tarafından izlenen FillSchema çalıştırmaktır. Örneğin:
daAuthors.FillSchema(dsPubs,SchemaType.Source, "Authors");
daAuthors.Fill(dsPubs,"Authors");
, Dolgu kullanmanız, sütun adları ve veri türlerini tanımlamak için gerekli olan temel meta verileri yalnızca yükleyebilirsiniz. Fill yöntemi, birincil anahtar bilgilerini yüklemez. Bu varsayılan davranışı değiştirmek için <a0></a0>, birincil anahtar meta veriler varsayılan bilgilerle birlikte yükleyen MissingSchemaAction.AddWithKey için DataAdapter nesnesinin MissingSchemaAction özelliğini ayarlayabilirsiniz. Örneğin:
daAuthors.MissingSchemaAction = MissingSchemaAction.AddWithKey;
daAuthors.Fill(dsPubs,"Authors");
- Veri tabloları koleksiyonu DataSet içindeki tek bir DataTable nesneyi olarak kullanıma sunulmuştur. FillSchema ve Dolgu çağrıları, bir tablo adı belirtilmişse, bu adı istediğiniz belirli bir tablo erişmek için kullanabileceğiniz.
DataTable tblAuthors;
tblAuthors = dsPubs.Tables["Authors"];
- Bir for, her döngü döngü DataRow nesneleri bir DataTable <a1>Satırlar</a1> koleksiyonu içindeki tüm kullanabilirsiniz. Bu tablodaki her satır için erişmenizi sağlar. Ad veya konum dizin sütunları ('ilk sütun konumu olan 0 ile') erişebilirsiniz. Örneğin:
foreach (DataRow drCurrent in tblAuthors.Rows)
{
Console.WriteLine("{0} {1}",
drCurrent["au_fname"].ToString(),
drCurrent["au_lname"].ToString());
}
Console.ReadLine();
- Projenizi kaydetmek. Hata Ayıkla) menüsünde, çalıştığından emin olun ve projenizin Başlat ' ı tıklatın.
Kod dökümü tamamlayın.
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();
}
}
}
ADO.NET hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitelerini,
DataSet nesneleri ve SQL, başvurun: