Bu makale, GridDesktop ta veri bağlama işlemini nasıl gerçekleştireceğinizi tanıtır.
Örnek Bir Veritabanı Oluşturma
- Ö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.
- Ürünler tablosuna üç sahte kayıt eklenmiştir. Ürünler tablosundaki kayıtlar
Örnek Bir Uygulama Oluşturma
Şimdi Visual Studio’da basit bir masaüstü uygulaması oluşturun ve aşağıdakileri yapın.
- Aracı kutusundan ‘GridControl’ denetimini sürükleyip form üzerine bırakın.
- 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.
- 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.
- 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:
- İstenen çalışma sayfasına erişin.
- Ç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:
- Veri Seti’ndeki (Ürünler) her sütun için başlıkları alın.
- 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); |
- Yukarıdaki kodu Veritabanına Güncelle düğmesine ekleyin.
- Uygulamayı çalıştırın.
- Worksheet verileri üzerinde bazı işlemler yapın, belki yeni satırlar ekleyin ve mevcut verileri düzenleyin veya kaldırın.
- Ardından Veritabanına Güncelle‘ye tıklayarak değişiklikleri veritabanına kaydedin.
- Tabloyu kontrol etmek için değiştirilmiş olup olmadığını görmek için.