C# Devexpress Gidview üzerinden satır ve kolon bazında okuma yapmak istiyorsak aşğıdaki yapıyı kullanabiliriz.
kodumuzun çalışma mantığını açıklarsak şu şekildedir.
1. döngümüz gridimiz üzerindeki satır sayısını alarak, işlemimizin satır sayımız kadar tekrarlanmasını sağlar. rowhandle ise bizim satır numaramız olur.
2. döngüde ise satırımızdaki kolon sayısı kadar döncek bir döngü kurulmuştur.
ikinci döngü her arttığında object tipte tanımlanmış v değişkenine kolondan okunan değer GetRowCellValue metoduyla alınır.bu metod parametre olarak satır numarasını ve konumlanılan kolonun adresini alır.
for (int i = 0; i < GridView.RowCount; i++) // 1. döngü
{
int rowHandle = GridView.GetVisibleRowHandle(i);
if ( GridView.IsDataRow(rowHandle))
{
for (int c = 0; c < GridView.VisibleColumns.Count; c++) // 2. döngü
{
object v= GridView.GetRowCellValue(rowHandle, GridView.VisibleColumns[c]);
if (c == 0)
ad= v.ToString();
if (c == 1)
soyad= v.ToString();
if (c == 2)
telefon= v.ToString();
}
}
// bu kısımda bilgiler kullanılarak işlem yapılabilir. örneğin okunan bilgileri veritabanına kaydetme.
}
yukarıdaki kodu incelediğimizde grid üzerinde değer okuyacağımız 3 adet kolon olduğu varsayılmıştır. Kolon numaralarımız sıfır(0) dan başladığı için daha önce tanımlayacağımız ad değişkenine ad kolonundaki değer alınır yine aynı şekilde soyad değişkeninede 1 kolondaki soyad bilgisi ve telefonda 2 kolondan alınır. Bu aşamada grid üzerinde bulunan satılarımızdan birindeki bilgileri elde etmiş oluruz. 2. döngüden çıkıldıktan sonra elde ettiğimiz bilgiler ile ilgi bir işlem yukarıda yazdığım alanda yapabilir. Çünki programımızın 1. döngüye tekrar dönmemesi gerekir. aksi takdirde program bir sonraki satırı okumaya geçer ve elde ettiğimiz diğer bilgiler kaybolur.kodu geliştirmek sizin elinizde farklı şekillerde de kullanabilirsiniz.
İyi Çalışmalar..
25 Haziran 2012 Pazartesi
12 Haziran 2012 Salı
C# ta Butona Kısayol Tuşu Atamak(Keydown event)
C# ta Butonlarımıza klavye kısayolları ekleyebiliriz. Örneğin form üzerinde kaydetme işlemimizi gerçekleştiren BtnKaydet isimli bir butonumuz olsun ve bu butonun kısayoluda F5 tuşu olsun.
ilk olarak işe formumuzun basılan tuşları yakalayabilmesi için Properties kısmından Keypreview özelliğini true yapalım. daha sonra formumuzun keydown olayında aşağıdaki kodu yazalım.
if(e.KeyCode==Keys.F5)
{
BtnKaydet.PerformClick();
}
bu kod çalıştırıldığında ve F5 tuşuna basıldığın da BtnKaydet Butonumuz için yazdığımız kod çalşıtırılacaktır.
iyi çalışmalar.
ilk olarak işe formumuzun basılan tuşları yakalayabilmesi için Properties kısmından Keypreview özelliğini true yapalım. daha sonra formumuzun keydown olayında aşağıdaki kodu yazalım.
if(e.KeyCode==Keys.F5)
{
BtnKaydet.PerformClick();
}
bu kod çalıştırıldığında ve F5 tuşuna basıldığın da BtnKaydet Butonumuz için yazdığımız kod çalşıtırılacaktır.
iyi çalışmalar.
C# Devexpress GridView Kayıt Sayısını Almak
Devexpress gridimizdeki kayıt sayısını bulmak için aşağıdaki kodu kullanabiliriz.
GridView ımızın ismi MusterilerView olsun
int kayitsayisi; // kayıt sayısını tutacak değişkenimiz
kayitsayisi=convert.ToInt32(MusterilerView.RowCount);
İyi çalışmlar.
GridView ımızın ismi MusterilerView olsun
int kayitsayisi; // kayıt sayısını tutacak değişkenimiz
kayitsayisi=convert.ToInt32(MusterilerView.RowCount);
İyi çalışmlar.
28 Ocak 2012 Cumartesi
C# ile Sql Script Çalıştırmak
Bazen programlarımızda sql scriptleri program üzerinden çalıştırmaya ihtiyac duyabiliriz. Bu durumda fiziksel bir yol üzerinde bulunan sql scriptimizi program içerisinden okuyarak ve metodumuz ile çalıştırarak işlemi gerçekleştirebiliriz.
okuma işlemimizi fileinfo sınıfını kullanarak aşağıdaki şekilde scripti string bir değişken içerisine aktararak gerçekleştiriyoruz. burada scriptimizin bulunduğu yolu veriyoruz ve ReadToEnd ile okunmasını sağlıyoruz.
FileInfo file = new FileInfo("C:\\Script.sql");
string scripttext = file.OpenText().ReadToEnd();
Metodumuz
protected virtual void ExecuteScript(SqlConnection connection, string script)
{
string[] commandTextArray = script.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);
connection.Open();
foreach (string commandText in commandTextArray)
{
if (commandText.Trim() == string.Empty) continue;
SqlCommand command = new SqlCommand(commandText, connection);
command.ExecuteNonQuery();
}
connection.Close();
}
Okuma işlemi gerçekleştirildikten sonra metodumuzu kullanabiliriz.
ExecuteScript(baglanti, scripttext);
Not: bağlantımız örnek olarak sqlconnection baglanti=new sqlconnection(); şeklinde tanımlanmış bir bağlantı olabilir. Kolay gelsin...
okuma işlemimizi fileinfo sınıfını kullanarak aşağıdaki şekilde scripti string bir değişken içerisine aktararak gerçekleştiriyoruz. burada scriptimizin bulunduğu yolu veriyoruz ve ReadToEnd ile okunmasını sağlıyoruz.
FileInfo file = new FileInfo("C:\\Script.sql");
string scripttext = file.OpenText().ReadToEnd();
Metodumuz
protected virtual void ExecuteScript(SqlConnection connection, string script)
{
string[] commandTextArray = script.Split(new string[] { "GO" }, StringSplitOptions.RemoveEmptyEntries);
connection.Open();
foreach (string commandText in commandTextArray)
{
if (commandText.Trim() == string.Empty) continue;
SqlCommand command = new SqlCommand(commandText, connection);
command.ExecuteNonQuery();
}
connection.Close();
}
Okuma işlemi gerçekleştirildikten sonra metodumuzu kullanabiliriz.
ExecuteScript(baglanti, scripttext);
Not: bağlantımız örnek olarak sqlconnection baglanti=new sqlconnection(); şeklinde tanımlanmış bir bağlantı olabilir. Kolay gelsin...
27 Ocak 2012 Cuma
C# IIS üzerindeki Klasörlere izin vermek (kod ile)
Bazı uygulamalarımızda ISS üzerindeki kullanacağımız klasörlerimize uygulama tarafında izinler vermemeiz gerekebilir bunun için aşağıda bahsedeceğim yapıyı kullanarak çözüm üretebilirsiniz. öncelikle aşağıdaki metodu kullanacağımızı belirteyim. ve sonrasında da biraz açıklayalım.
public void YazimIzniVer(string HesapAdi, string klasorYolu)
{
try
{
if (Directory.Exists(klasorYolu))
{
var klasor = new DirectoryInfo(klasorYolu);
var klasorGuvenligi = klasor.GetAccessControl();
var rule = new FileSystemAccessRule(HesapAdi, FileSystemRights.FullControl, InheritanceFlags.None | InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
klasorGuvenligi.SetAccessRule(rule);
klasor.SetAccessControl(klasorGuvenligi);
}
}
catch (Exception)
{
MessageBox.Show("klasör izni verilemedi.");
}
}
metodumuz içerisine 2 değer almaktadır HesapAdi ve KlasorYolu. Hesap adımız kullanılan IIS versiyonuna göre değişmektedir. IIS 7 için IIS_IUSRS ve IIS 6 için de IIS_WPG bizim hesap adlarımızdır.
bu metod içerisinde bir noktaya değinicem. aşağıdaki satırda
var rule = new FileSystemAccessRule(HesapAdi, FileSystemRights.FullControl, InheritanceFlags.None | InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
FileSystemRights.FullControl kısmı bizim vereceğimiz izni belirtmektedir. biz bura da tam yetki vermişiz siz kendinize uygun olanı kullanabilirsiniz.
şimdide bu metodumuzu nasıl kullanıcaz örnek bir satırda bunu görelim.
YazimIzniVer("IIS_IUSRS", "C:\\inetpub\\wwwroot\\uygulamaklasorunuz\\image");
evet görünen şekilde metodumuza ilk olarak IIS 7 versiyonuna göre hesap adımızı verdik daha sonrada klasör yolumuzu. siz klasör yolunu bir değişken olarakta buraya atayabilirsiniz.
kodumuz çalıştığında image klasörüne belirlediğimiz izin verilecektir. Kolay gelsin...
public void YazimIzniVer(string HesapAdi, string klasorYolu)
{
try
{
if (Directory.Exists(klasorYolu))
{
var klasor = new DirectoryInfo(klasorYolu);
var klasorGuvenligi = klasor.GetAccessControl();
var rule = new FileSystemAccessRule(HesapAdi, FileSystemRights.FullControl, InheritanceFlags.None | InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
klasorGuvenligi.SetAccessRule(rule);
klasor.SetAccessControl(klasorGuvenligi);
}
}
catch (Exception)
{
MessageBox.Show("klasör izni verilemedi.");
}
}
metodumuz içerisine 2 değer almaktadır HesapAdi ve KlasorYolu. Hesap adımız kullanılan IIS versiyonuna göre değişmektedir. IIS 7 için IIS_IUSRS ve IIS 6 için de IIS_WPG bizim hesap adlarımızdır.
bu metod içerisinde bir noktaya değinicem. aşağıdaki satırda
var rule = new FileSystemAccessRule(HesapAdi, FileSystemRights.FullControl, InheritanceFlags.None | InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccessControlType.Allow);
FileSystemRights.FullControl kısmı bizim vereceğimiz izni belirtmektedir. biz bura da tam yetki vermişiz siz kendinize uygun olanı kullanabilirsiniz.
şimdide bu metodumuzu nasıl kullanıcaz örnek bir satırda bunu görelim.
YazimIzniVer("IIS_IUSRS", "C:\\inetpub\\wwwroot\\uygulamaklasorunuz\\image");
evet görünen şekilde metodumuza ilk olarak IIS 7 versiyonuna göre hesap adımızı verdik daha sonrada klasör yolumuzu. siz klasör yolunu bir değişken olarakta buraya atayabilirsiniz.
kodumuz çalıştığında image klasörüne belirlediğimiz izin verilecektir. Kolay gelsin...
64 BIT OS üzerindeki IIS te 32 BIT Uygulamaları Çalıştırmak
Geliştirdiğiniz 32 bit (x86) uygulamanızı 64 işletim sistemi üzerinde ki IIS sunucusunda çalıştırmak istediğinizde beklemediğiniz bir hata alabilirsiniz. Bu hatayı almamak için IIS sunucunuzun 32 bit uygulamaları çalıştıma özelliğini aktif etmeniz gerekmektedir. Bu işlem için ISS sunucunuzun arayüz programını girin application pools menüsüne tıklayın açılan pencerede sağtıklayıp ayarlara girin ve ilgili özelliği true yapın. iyi çalışmalar.
Kaydol:
Kayıtlar (Atom)