Bu makale, GridDesktop ta veri bağlama işlemini nasıl gerçekleştireceğinizi tanıtır.

Örnek Bir Veritabanı Oluşturma

  1. Örnek bir veritabanı oluşturmak için. Örnek bir veritabanı oluşturmak için Microsoft Access kullanıyoruz ve aşağıdaki şemayı içeren bir Ürünler tablosu ile örnek bir veritabanı oluşturduk.

todo:image_alt_text

  1. Ürünler tablosuna üç sahte kayıt eklenmiştir. Ürünler tablosundaki kayıtlar

todo:image_alt_text

Örnek Bir Uygulama Oluşturma

Şimdi Visual Studio’da basit bir masaüstü uygulaması oluşturun ve aşağıdakileri yapın.

  1. Aracı kutusundan ‘GridControl’ denetimini sürükleyip form üzerine bırakın.
  2. Aracı kutusundan dört düğmeyi formun alt kısmına sürükleyin ve metin özelliğini sırasıyla Çalışma Sayfasını Bağla, Satır Ekle, Satır Sil ve Veritabanına Güncelle olarak ayarlayın.

Ad Alanı Ekleme ve Global Değişkenler Bildirme

Bu örnek, bir Microsoft Access veritabanı kullandığından, kodun en üstüne System.Data.OleDb ad alanını ekleyin.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Adding namespace to the top of code
using System.Data.OleDb;

Bu ad alanı altında paketlenmiş sınıfları kullanabilirsiniz.

  1. Global değişkenleri bildirin.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Declaring global variable
OleDbDataAdapter adapter;
OleDbCommandBuilder cb;
DataSet ds;

Veritabanından Veri Seti ile Veri Doldurma

Şimdi örnek veritabanına bağlanarak bir Veri Seti nesnesine veri çekip doldurun.

  1. OleDbDataAdapter nesnesini kullanarak örnek veritabanıyla bağlantı kurun ve veritabanındaki Ürünler tablosundan alınan verilerle bir Veri Seti doldurun, aşağıdaki kodda gösterildiği gibi.
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
private void DataBindingFeatures_Load(object sender, EventArgs e)
{
// The path to the documents directory.
string dataDir = Utils.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Creating Select query to fetch data from database
string query = "SELECT * FROM Products ORDER BY ProductID";
// Creating connection string to connect with database
string conStr = @"Provider=microsoft.jet.oledb.4.0;Data Source=" + dataDir + "dbDatabase.mdb";
// Creating OleDbDataAdapter object that will be responsible to open/close connections with database, fetch data and fill DataSet with data
adapter = new OleDbDataAdapter(query, conStr);
// Setting MissingSchemaAction to AddWithKey for getting necesssary primary key information of the tables
adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
/*
* Creating OleDbCommandBuilder object to create insert/delete SQL commmands
* automatically that are used by OleDbDatAdapter object for updating
* changes to the database
*/
cb = new OleDbCommandBuilder(adapter);
// Creating DataSet object
ds = new DataSet();
// Filling DataSet with data fetched by OleDbDataAdapter object
adapter.Fill(ds, "Products");
}

Çalışma Sayfasını Veri Seti ile Bağlama

Çalışma sayfasını Veri Seti’nin Ürünler tablosuyla bağlayın:

  1. İstenen çalışma sayfasına erişin.
  2. Çalışma sayfasını Veri Seti’nin Ürünler tablosuyla bağlayın.

Çalışma Sayfasını Bağla düğmesinin tıklama olayına aşağıdaki kodu ekleyin.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing the worksheet of the Grid that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Binding the Worksheet to Products table by calling its DataBind method
sheet.DataBind(ds.Tables["Products"], "");

Çalışma Sayfası Sütun Başlıklarını Ayarlama

Bağlı çalışma sayfası şu anda verileri başarıyla yüklüyor ancak sütun başlıkları varsayılan olarak A, B ve C olarak etiketlenmiştir. Veritabanı tablosundaki sütun başlıklarını sütun başlıklarına ayarlamak daha iyi olacaktır.

Çalışma sayfası sütun başlıklarını ayarlamak için:

  1. Veri Seti’ndeki (Ürünler) her sütun için başlıkları alın.
  2. Başlıkları çalışma sayfası sütunlarının başlıklarına atayın.

Çalışma Sayfasını Bağla düğmesinin tıklama olayına aşağıdaki kod parçasını ekleyin. Böylece eski sütun başlıkları (A, B ve C) ProductID, ProductName ve ProductPrice ile değiştirilecektir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Iterating through all columns of the Products table in DataSet
for (int i = 0; i < ds.Tables["Products"].Columns.Count; i++)
{
// Setting the column header of each column to the column caption of Products table
sheet.Columns[i].Header = ds.Tables["Products"].Columns[i].Caption;
}

Sütunların Genişlik ve Stilini Özelleştirme

Çalışma sayfasının görünümünü daha da iyileştirmek için sütunların genişliğini ve stilini ayarlamak mümkündür. Örneğin, bazen, sütun başlığı veya sütundaki değer hücresi içine sığmayacak uzun sayıda karakterden oluşur. Bu tür sorunları çözmek için Aspose.Cells.GridDesktop, sütunların genişliklerini değiştirmeyi destekler.

Çalışma Sayfasını Bağla düğmesine aşağıdaki kodu ekleyin. Sütun genişlikleri yeni ayarlamalara göre özelleştirilecektir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Customizing the widths of columns of the worksheet
sheet.Columns[0].Width = 70;
sheet.Columns[1].Width = 120;
sheet.Columns[2].Width = 80;

Aspose.Cells.GridDesktop ayrıca sütunlara özel stiller uygulamayı destekler. Çalışma Sayfasını Bağla düğmesine eklenen aşağıdaki kod, sütun stillerini daha gösterişli hale getirir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Iterating through each column of the worksheet
for (int i = 0; i < sheet.ColumnsCount; i++)
{
// Getting the style object of each column
Style style = sheet.Columns[i].GetStyle();
// Setting the color of each column to Yellow
style.Color = Color.Yellow;
// Setting the Horizontal Alignment of each column to Centered
style.HAlignment = HorizontalAlignmentType.Centred;
// Setting the style of column to the updated one
sheet.Columns[i].SetStyle(style);
}

Şimdi uygulamayı çalıştırın ve Çalışma Sayfasını Bağla Düğmesine tıklayın.

Satırlar Ekleme

Yeni satırlar eklemek için, Worksheet sınıfının AddRow yöntemini kullanın. Bu, en altta boş bir satır ekler ve bir veri kaynağına yeni bir DataRow eklenir (burada, bir DataSet’in DataTable’ına yeni bir DataRow eklenir). Geliştiriciler AddRow yöntemini tekrar tekrar çağırarak istedikleri kadar satır ekleyebilirler. Bir satır ekledikten sonra, kullanıcılar içine değer girebilir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Adding new row to the worksheet
gridDesktop1.GetActiveWorksheet().AddRow();

Satırları Silme

Aspose.Cells.GridDesktop ayrıca Worksheet sınıfının RemoveRow yöntemini çağırarak satırları silmeyi destekler. Bir satırı silmek için Aspose.Cells.GridDesktop kullanırken silinecek satırın dizinini gerektirir.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Getting the index of the focused row
int focusedRowIndex = gridDesktop1.GetActiveWorksheet().GetFocusedCell().Row;
// Removing the focused row fro the worksheet
gridDesktop1.GetActiveWorksheet().RemoveRow(focusedRowIndex);

Yukarıdaki kodu Satırı Sil düğmesine ekleyin ve uygulamayı çalıştırın. Bir satırın kaldırılması öncesinde birkaç kayıt görüntülenir. Bir satırı seçip Satırı Sil düğmesini tıkladığınızda seçilen satır kaldırılır.

Veritabanına Yapılan Değişikliklerin Kaydedilmesi

Son olarak, kullanıcılar tarafından çalışsheet’te yapılan herhangi bir değişikliği veritabanına kaydetmek için OleDbDataAdapter nesnesinin Update yöntemini kullanın. Update yöntemi worksheet’in veri kaynağını (DataSet, DataTable vb.) alır ve veritabanını güncellemek için kullanır.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Accessing the worksheet of the Grid that is currently active
Worksheet sheet = gridDesktop1.GetActiveWorksheet();
// Updating the database according to worksheet data source
adapter.Update((DataTable)sheet.DataSource);
  1. Yukarıdaki kodu Veritabanına Güncelle düğmesine ekleyin.
  2. Uygulamayı çalıştırın.
  3. Worksheet verileri üzerinde bazı işlemler yapın, belki yeni satırlar ekleyin ve mevcut verileri düzenleyin veya kaldırın.
  4. Ardından Veritabanına Güncelle‘ye tıklayarak değişiklikleri veritabanına kaydedin.
  5. Tabloyu kontrol etmek için değiştirilmiş olup olmadığını görmek için.