Kategori arşivi: Bilgisayar Programlama

SQL While Döngüsünün Kullanımı

query while

Sql de döngülere pek ihtiyaç olmaz fakat bazen çok kullanışlı olabiliyor,

Örnek olarak sıfırdan n sayısına kadar olan rakamların toplamını veren bir döngü yapalım, bunun için üç tane değişken oluşturalım;

1) n sayısı

2) döngünün kaçıncı döngü olduğu bilgisini tutan değişken

3) toplam bilgisinin tutulacağı değişken


/* n sayımız */

declare @nsayisi as int

/* döngü sayısını sayacağımız değişken */

declare @say as int

/* toplam alacağımız değişken */

declare @sonuc as int

Algoritmayı koda dökelim,

@say değişkeni, @nsayisi değişkeninin değerinden küçük olduğu sürece döngü oluştur,

her döngüde @say değişkeninin değerini 1 arttır

her döngüde @sonuc değişkenini kendisi ve @say değişkeninin toplamına eşitle

döngü bitince @sonuç değerini ekrana yazdır.


declare @nsayisi as int = 3
declare @say as int = 0
declare @sonuc as int = 0

while @say < @nsayisi
begin
set @say = @say + 1
set @sonuc = @sonuc + @say
end

print @sonuc

dongu while

DevExpress Asp.Net Grid SelectionChanged KeyField Değeri

devexpress

DevExpress Kullanırken Asp.Net Grid SelectionChanged KeyField Değeri Nasıl Alınır?

Deveexpress gridi çoklu select desteklediği için seçilen değeri liste atıyoruz sonra ilk elemanı seçiyoruz. Bunu yapmadan önce grid properties penceresinden AllowSelectSingleRowOnly=true ve ProcessSelectionChangedOnServer=true olarak ayarlanmalıdır.


protected void grid_fiyat_stoklistesi_SelectionChanged(object sender, EventArgs e)
{
List<object> kayitlar = grid_fiyat_stoklistesi.GetSelectedFieldValues(grid_fiyat_stoklistesi.KeyFieldName);
MessageBox.Show(kayitlar[0].ToString());
}

Php – PDO Veritabanı Bağlantısı

pdoPdo kullanarak veritabanına nasıl bağlanılır?

Php üzerinde pdo veritabanı class ını kullanabilmek için aşağıdaki bağlantı cümlesini kullanabilirsiniz.


try{
$adres = 'mysql:host=localhost;dbname=veritabaniismi';
$kullanici = 'kullaniciadi';
$sifre = 'sifre';
$pdo = new PDO($adres, $kullanici, $sifre);
$pdo->exec('SET CHARSET UTF8');
} catch(PDOException $e){
die('Bağlantı hatası: ' . $e->getMessage());
exit;
}

MaskedEditExtender Silme Sorunu Çözüm

aspnet MaskedEditExtender AjaxControlToolkit MaskedEditExtender Silme Sorununa Çözüm

AjaxControlToolkit kullanımında MaskedEditExtender kullanırken sadece bazı tarayıcılarda olmak üzere yazılan metnin silinememesi sorunu yaşadım

Bazı tarayıcılarda maskededit alanındaki yazıda silme sorunu oluyor, bunun çözümü için proje içerisinde bir klasöre MaskedEditFix isimli dosyayı yükledikten sonra SiteMaster page load eventine şu kodları yapıştırabilirsiniz.


if (Page.ClientScript.IsStartupScriptRegistered(this.GetType(), "MaskedEditFix") == false)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "MaskedEditFix", string.Format("<script type='text/javascript' src='{0}'></script>", Page.ResolveUrl("~/MaskFix/MaskedEditFix.js")));
}

AjaxControlToolkit projesine buradan ulaşabilirsiniz.

MSSQL Rollup ve Cube ile satır şeklinde toplam

Mssql Rollup ve Cube ile Nasıl Toplam Alınır?

Yazdığınız programda satır toplamı alma işini direk olarak veritabanında yapmak isteyebilirsiniz.

Bu işlemi yapabilmek için rollup veya cube komutlarını kullanmanız gerekir.

Aşağıda bunların kullanımını örnekledim;

 

deneme_not1 isminde şöyle bir tablomuz olsun
rollup

Örnek olarak şu kayıtları girelim

rollup

rollup ve cube için bir kaç deneme yapıp sonucunu görelim

rollup

rollup

rollup

Görüldüğü üzere rollup ile aldığımız sorgu, group by alanında belirttiğimiz sütunlara göre toplam oluşturuyor, cube ile aldığımız sorgu ise farklı sütun kombinasyonları için tek tek toplamlar oluşturuyor.

Son olarak da mantığı daha net görebilmek için basit bir örnek yapalım

rollup ve cube toplam

Sorguda dikkatinizi çekmesi gereken bir nokta da isnull() fonksiyonu, cube ve rollup toplamlara bağlı sütun değerini null olarak döndürdüğü için eğer nullsa Toplam yaz mantığıyla bu fonksiyonu kullanabiliyoruz.