30 Temmuz 2009 Perşembe

dev express DateEdit 00:00:00 kaldırmak

Dev Express dateEdit Kullandığımda Mask olarak Short Date bile seçseniz hemen seçimden sonra tarihin yanına 00:00:00 gibi bir şey getiriyor.Nedir bu nedir diye düşünürken kaldırmak için yapılması için gerekli olan şeyi buldum.

Mask.UseMaskAsDisplayFormat özelliğini True Yapmakmış Offf Dev Express Offf :(

Float Regular Expression

Düşündüm Bir text kutusuna sadece float (kayan noktaşı) veri girişine izinvermek isteseydim.
Regular Expression ile nasıl ifade ederiz diye düşündüm şöyle olması gerekir.

[-+]?([0-9]*\.[0-9]+[0-9]+)

DateTime Null Alan Girmek

Sql de DateTime veri tipleriyle çalışmak Null yada String.Empty ("") atanamadığından biraz problem çıkartır.

diyelimki kullanıcı tarih girmemiş ve sizde doğal olarak tarih tipi girilmemişse tarih alanına bir şey yazdırma diyebilmelisiniz.

null atamayız "" atamayız ozaman
DBNull.Value atayabilirsiniz.
Peki .Net de DateTime Tipinede hiç bir şey girilmediğinde null yada "" taşımak yerine Datetime.MinValue atayarak boş gelmiş gibi düşünebilirsiniz.

yani şöyle bir şey yaptım ben


if (customerequipment.EquipmentInstallCATDate == DateTime.MinValue)
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = DBNull.Value;
else
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = customerequipment.EquipmentInstallCATDate;

dev express Message Box Ayarları

Dev Express Message Box kullanımı oldukca kolay
XtraMessageBox.Show("Delete Operation is Successful", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

Geriye değer döndürmek ise şöyle ;


DialogResult DResult=XtraMessageBox.Show("Are You Sure Clearing Form ?", "Clear", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (DResult == DialogResult.No)
return;

29 Temmuz 2009 Çarşamba

3G de Gelmiş Aman Aman


Viki Bilgisi:Uluslararası Telekomünikasyon Birliği-2000 (International Mobile Telecommunications-2000) (IMT-2000), ya da daha bilinen adıyla 3G, 3N ya da 3. Nesil, Uluslararası Telekomünikasyon Birliği tarafından tanımlanan; GSM EDGE, UMTS, CDMA2000, DECT ve WiMAX teknolojilerini kapsayan bir standartlar ailesidir. Verilen hizmetler arasında mobil kullanıcılar için geniş-alanda kablosuz telefon görüşmeleri, görüntülü aramalar ve kablosuz veri aktarımı vardır. 2G ve 2.5G hizmetleriyle karşılaştırıldığında, 3G eşzamanlı konuşma ve veri hizmetleriyle daha yüksek veri hızlarını (HSPA+ ile iniş yolunda 14.4 Mbit/s ve çıkış yolunda 5.8 Mbit/s'e ulaşan hızları) desteklemektedir. Bu sayede 3G ağları, ağ operatörlerinin daha geniş ve gelişmiş hizmetleri, geliştirilmiş spektral verimlilik sayesinde ulaşılan daha büyük ağ kapasitesiyle sunmalarını sağlar.

Uluslararası Telekomünikasyon Birliği üçüncü nesil (3G) mobil telefon standartlarını gelişimin hızlanması, bantgenişliğinin artması ve daha geniş uygulamaların desteklenmesi için tanımladı. Örneğin, GSM (şu anki en yaygın cep telefonu standardı) sadece ses değil, aynı zamanda 14.4 kbps hızlarında devre anahtarlamalı veri aktarımını destekler; ancak çokluortam uygulamalarının desteklenmesi için 3G'de paket anahtarlamalı verilerin daha iyi spektral verimlilikte ve daha yüksek hızlarda aktarılması gerekmektedir. Paket anahtarlaması sayesinde 3G sisteminde cihazlar bant genişliğini sadece veri alışverişi sırasında işgal ederler. Özet olarak, 3G'nin 2G'ye göre getirmiş olduğu en büyük yenilik, iletimin ses yerine veri odaklı olmasıdır.


3G'nin getirmiş olduğu birçok yenilik vardır:
Mesajlaşma, internet erişimi ve yüksek hızda çoklu ortam haberleşme desteği
Gelişmiş hizmet kalitesi
Gelişmiş pil ömrü
Konumlandırma hizmetlerinin sağlanması
İşletim ve bakım kolaylığı
Multimedya ve eğlence seçenekleri ile hızlı dosya,resim,müzik aktarımları olmaktadır.
Mevcut şebekelerle birlikte çalışabilirlik, 2G’ye dolaşım sağlayabilme
Mevcut şebekelere geriye doğru uyum sağlayabilme, düşük kurulum maliyeti
Gelişmiş güvenlik yöntemleri sayesinde mobil ticarete ortam sağlayabilme
Medya haberciliği açısında çekilen video görüntülerinin en hızlı bir şekilde haber merkezine yetiştirilmesi
Son Kullanıcı açısında YouTube hesabınıza direk video gönderimi ve paylaşımı
4 saatte indirilebilen 700 MB'lık Divx filmin 1 saatte indirilebilmesi (2 mbps hız)
Görüntülü konuşmanın sağlanması.
Mobil TV izleyebilme (Kupa maçları ve diziler gibi).

28 Temmuz 2009 Salı

C# kod ile nesne oluşturma

DevExpress.XtraEditors.CheckedListBoxControl[] ArryChkEquipmentSubSystem;
yazarak en başta bir kontrol tanımladım.

daha sonra sayısının kesinleştiği kod bloguna giderek

ArryChkEquipmentSubSystem = new DevExpress.XtraEditors.CheckedListBoxControl[intCountCustomerEquipment];

şimdi nesneler oluştu bunları forma eklemeye gelelim

for (int i = 0; i < location =" new" size =" new" style="color:#330099;">ArryChkEquipmentSubSystem[i].Name = "SubSystem_" + i;
ArryChkEquipmentSubSystem[i].ItemCheck += new DevExpress.XtraEditors.Controls.ItemCheckEventHandler(ArryChkEquipmentSubSystem_ItemCheck);
}



kırmızı yazılı kodla bir olay bile bağladım :)
olayın hangi nesneden tetiklendiğini nereden alırım



private void ArryChkEquipmentSubSystem_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
{
DevExpress.XtraEditors.CheckedListBoxControl editArryChkEquipmentSubSystem = sender as DevExpress.XtraEditors.CheckedListBoxControl;
string strControlName = editArryChkEquipmentSubSystem.Name.ToString();
int intControlID = Convert.ToInt16(strControlName.Replace("SubSystem_", ""));
if (e.State == CheckState.Checked)
{
lstChkEquipmentSubSystem[intControlID].Add(e.Index);
}
if (e.State == CheckState.Unchecked)
{
lstChkEquipmentSubSystem[intControlID].Remove(e.Index);
}
}

Mavi yazılı kod ile bunu anlarım.
Not: Burada nesnelerin konumlarını aynı yazdığımız için üste üste gelerek tek bir nesne gibi görünür.

C# Dataset Bilgi Okumak

Datasetden bil okumak bilindiği gibi sorunlu bir işlem öncelikle datasetin hangi tablosundan hangi sutunu okuyacağımızı bilmeliyiz.

DataSet dsID = new DataSet();
dsID = obj.TakeCustomerEquipmentCustomerIDGetEquipmentMasterNameCustomerEquipmentID(intcustomerID);
ArrayList aryEquipmentID = new ArrayList();
foreach (DataRow dtr in dsID.Tables[0].Rows)
{
foreach (DataColumn c in dsID.Tables[0].Columns)
{
aryEquipmentID.Add(dtr[c.ColumnName]);
}
}


dataset ilk tablosunun satırlarında gezerek sutun sutun yazdırılıyor.Eğer Datasetin aldığınız sorgular birden fazla sutun içeriyorsa ArrayList giderek belli bir moddaki verileri filitre etmelisiniz. Örneğin 3 tane eğer kolumunuz varsa ve ilki ID tablosunda geliyorsa Araylist içeriği
0 ID
1
2
3 ID
4
5
6 ID
şeklinde gelen kayıtlardan oluşacak
neyseki benim TakeCustomerEquipmentCustomerIDGetEquipmentMasterNameCustomerEquipmentID güzel fonksiyonum tek bir sutundan oluşuyor.Tekrar yukarıdaki kodu filitreleme gerek yok.

23 Temmuz 2009 Perşembe

String birleştirme

C# da string birleştirme + operatörüyle
VB de ise & ile yapılma

C# da bir örnek

string strcode = "";
strcode = strcustomercode + "-" + intyear.ToString() + "-" + intCountratTotalCount + "-" + ContractType.Properties.Value.ToString();
ContractNumber.Properties.Value = strcode;

C# Tarih Farkı (Date Diff)

C# da hep datihfarkı_sontarih-ilktarih gibi bir işlemi yapmak istemişimdir.Bu işlem bukadar kolay olmasada

diffResult =dtTodayMidnight -dtTodayNoon gibi bir işlemi yapan C# kodu aşağıda var.


using System;
using System.Collections.Generic;
using System.Text;

namespace Console_DateTime
{
class Program
{
static void Main(string[] args)
{
System.DateTime dtTodayNoon = new System.DateTime(2006, 9, 13, 12, 0, 0);
System.DateTime dtTodayMidnight = new System.DateTime(2006, 9, 13, 0, 0, 0);
System.TimeSpan diffResult = dtTodayNoon.Subtract(dtYestMidnight);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.Days);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.TotalDays);
Console.ReadLine();
}
}
}
Çıktı:

19 Temmuz 2009 Pazar

Regular Expression Nedir?

Regular Expression, veriler içinde, istediğinize göre belirleyebileceğimiz kompleks sözdizimine sahip ifadeleri bulmak için kullanılan bir tekniktir. Bu teknik bir string içinde başka bir string bulmamıza ve istersek değiştirmemize yarar. Sözdizimi oluşturmak için kullanabileceğimiz birkaç yöntem vardır:
- Karakter Uyuşması
- Tekrarlanma Uyuşması
- Pozisyon uyuşması

1. Karakter Uyuşması: Belirlediğimz karakterlerin string içinde aramamıza yarar.
Örnek:
dogma

Başka bir örnek:
d.gma

"Nokta" karakteri, Regular Expression içinde özel bir karakterdir ve herhangi bir karakter yerine geçebilir. Yani yukarıdaki ifade
dAgma dBgma d9gma dogma d0gma..
ifadelerini çağırır.

Burada "Nokta" ile her karakteri arayacağımız gibi istediğimiz karakterler içinde arama yapılmasını da sağlayabiliriz:
[1234]dogma
Sonuç:
1dogma, 2dogma, 3dogma, 4dogma

Bunu bir diziye dökecek olursak:
[1-9]dogma
Sonuç:
1dogma, 2dogma,...,8dogma, 9dogma

Tabi burada rakam yerine harf de kullanabiliriz:
[a-d]dogma
Sonuç:
adogma, bdogma, cdogma, ddogma

2. Tekrarlanma Uyuşması: Regular Expression'ın derinleme araştırma yaparak gücünü gösterdiği bölümdür.
Örneğin dogm ve dogma çıktısını istiyoruz. Bunun için başka bir özel karakter kullanmalıyız: "Soru İşareti"
dogma?

Sonuç:
dogm, dogma

Soru işareti, soru işaretinin sıfır ve bir solundaki karakterler düşürülerek araştırılır.

Peki "dogma?" veya "dogma.?" şeklinde çıktı istiyorsak ne yapmalıyız? Kelimesi kelimesine arama için özel karakterlerden hemen önce bir ters bölü işareti (\) koymalıyız.
Yani dogma\?
Sonuç sadece dogma? değerini döndürür.

Diğer bir özel karakter yıldız işaretidir (*, asteriks). Bir önceki karakterle uyuşan sonuçlar çıkarır.
Örnek:
dogma*

Sonuç:
dogma, dogmaa, dogmaaaaaaa...

Burada son harfin değil bir grubun tekrarlanmasını istiyorsanız parantez kullanabilirsiniz.
Örnek:
dog(ma)*

Sonuç:
dogma, dogmama, dogmamamama...

Burada "ma" ifadesinin tekrar sayısı sınırsızdır. İfadenin kaç kere tekrar edileceğini de sınırlayabilirsiniz.
Örnek:
do{3}gma

Sonuç:
dooogma

Kısaca özel karakterlerin anlamları: \ ( ) [ { ^ $ * + ? . < >
\ : Özel karakterleri normak karakter olarak kullanabilmemizi sağlar.
: Veya anlamına gelir: "[htf]tp:" Çıktısı http: veya ftp: olur.
( : Grup başlatır.
] : Grup sonlandırır.
[ : Diziler oluşturmamızı sağlar. [A-Z]
{ : Tekrar sayısı belirmebilmemizi sağlar.
^ : Aranan ifadenin, string içinde en başta aranmasını sağlar.
$ : Aranan ifadenin, string içinde en sonda aranmasını sağlar.
* : 0 ya da daha fazla ifadeyi string içinde arar.
+ : 1 ya da daha fazla ifadeyi string içinde arar.
? : Kendinden önceki bir ifadeyi düşürerek arama yapar.
. : Kendi bulunduğu yere herhangi bir karakter koyarak arama yapar
< : İfadenin, string içinde tam olarak geçmesini sağlar:


3. Pozisyon Uyuşması: Aranılan ifadenin string içindeki yerini de belirlememizi sağlar.
İfadenin, string içinde en başta olmasını istiyorsak başına ^ koymamız gerekir.
Örnek:
^dogma
Burada, string dogma ile başlıyorsa sonuç başarılıdır.

Eğer string içinde en sonda olmasını istiyorsak sonuna $ koymalıyız.
Örnek:
dogma$
Burada da, string dogma ile bitiyorsa sonuç başarılıdır.

Sık Kullanılan uygulamalar için bazı hazır diziler geliştirilmiştir:
\d = [0-9]
\D = [^0-9]
\w = [a-zA-Z0-9]
\W = [^a-zA-Z0-9]
\s = [ \t\n\r\f]
\S = [^ \t\n\r\f]



Artık Regular Expression konusunun temelini biliyoruz. Aşağıdaki örnekler yardımıyla kendi sözdiziminizi yazarak kendi kontrollerinizi oluşturabilirsiniz.

Telefon Numarası Doğrulama:
0(XXX)-XXX-XX-XX

Aradığımız karakterler:
Sıfır Parantez Açma 3 Adet Rakam Parantez Kapama Çizgi 3 Adet Rakam Çizgi 2 Adet Rakam Çizgi 2 Adet Rakam

Regular Expression:
0\([0-9]{3}\)-[0-9]{3}-[0-9]{2}-[0-9]{2}

Şimdi teker teker ifadeleri açıklayalım:
0 : Numarada aranan sabit karakter.
\( : Parantez açıyoruz ancak parantez özel karakter olduğundan önüne bir ters bölü işareti koyuyoruz. (Parantez, gruplama da kullanlan özel karakterdir)
[0-9]{3} : Sıfırdan dokuza kadar olan karakterler üç defa bulunacak.
\) : Parantezi kapatıyoruz. Artık başındaki ters bölüyü anlatmama gerek yok sanırım.
- : Numarada aranan sabit karakter.
[0-9]{3} : Sıfırdan dokuza kadar olan karakterler üç defa bulunacak.
- : Numarada aranan sabit karakter.
[0-9]{2} : Sıfırdan dokuza kadar olan karakterler iki defa bulunacak.
- : Numarada aranan sabit karakter.
[0-9]{2} : Sıfırdan dokuza kadar olan karakterler iki defa bulunacak.


--------------------------------------------------------------------------------


--------------------------------------------------------------------------------

Mail Adresi Kontrolü içinde şu ifadeyi kullanabilirsiniz:
[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+

C# ile Web sayfası bilgilerini almak

asp.net yada php gibi modern diller sunucuda çalışarak bilgilere üretir.üretilen bilgilerde html olarak görüntülenir.Html bilgileri almak kolaydır fakat bir asp.net kodunu sunucudan almak pratikde imkansızdır (mimari izin vermez) fakat bir web sayfasının o anki görüntüsünü alabilir.
Web sitesi üzerinde önemli işlemler yapabiliriz.
aşağıda ki kod sozluk sitesine bağlanır ve sitenin html bilgilerini bize sunar.
using System.Net;
using System.IO;

-----
string URL = "http://www.sozluk.com";
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
textBox1.Text = GetWebPageTitle("http://www.sozluk.com");

14 Temmuz 2009 Salı

INSERT INTO SELECT

Kim SQL kullanarak bir tablodaki verilerini başka tabloya kopyalamak istemez.Tabiki kopyalanacak veri tiplerinin uyumlu olması kaçınılmaz.
insert into tablo1 (val1,val2) Values('deg1','deg2') şeklindeki standart kullanımdan biraz farklı olarak values yerine yeni bir select sorgusu getirerek dönen değerlerin tabloya eklenmesi sağlanır.
insert into mla_Rev (LanguageID, AppID) select LanguageID, AppID FROM mla_Rev WHERE (RevID = 8)"

C# Stored Procedure Eklenen Kaydın Değerini Almak

Senaryo: Bir Kayıt eklediniz.ve eklenen kaydın id numarasını alarak başka işler yapacaksınız.Peki nasıl alırsınız bu değeri.Stored Procedure kullanarak.

öncelikle Stored Procedure
insert sorgusunda bir değişiklik yapmalıyız

CREATE PROCEDURE SPISIMKAYIT
@dSupplierName varchar(50),
@dSupplierAddress varchar(50),
@dSupplierTel nchar(10),

@ID int out
AS
insert into tbSuppliers (SupplierName,
SupplierAddress,SupplierTel)values
(@dSupplierName,@dSupplierAddress
,@dSupplierTel)SET @ID = SCOPE_IDENTITY()


hazırlamış olduğumuz Stored Procedure oluşturduk. Peki C# nasıl geri dönecek bu zımbırtı.
public int InsertSupplier()
{
SqlCommand cmd = new SqlCommand("Supplier_Add");
cmd.Parameters.Add("@dSupplierName", SqlDbType.VarChar).Value = supplier.SupplierName;
cmd.Parameters.Add("@dSupplierAddress", SqlDbType.VarChar).Value = supplier.SupplierAddress;
cmd.Parameters.Add("@dSupplierTel", SqlDbType.VarChar).Value = supplier.SupplierTel;
cmd.Parameters.Add("@ID", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteScalar();
int sonid = Convert.ToInt32(cmd.Parameters["@ID"].Value);
return sonid;
}

işte böylede geri dönerek eklediğimiz kaydın id'si

10 Temmuz 2009 Cuma

Arraylist

Dizilerde çalışmanın bir çok sıkıntısı olduğu bilir.Öncelikle dizinin eleman sayısı yazılmalıdır.Ayırca Dizinin eleman sayısının kestirilemeyeceği noktalarda oldukca büyük diziler tanımlamak gerekir.Bu diziler bellekde yer işgal eder ve yinede bir çok seneryoda elimizdeki diziden daha fazla sayıda diziye ihtiyacımız olamayacağının kestiremeyebiliriz.Sonunda ne olur IndexOutOfRangeException istisnası size fırlatılıverir.

işte dizi sıkıntılarından bizi kurtaracak süper bir yol Arraylist istediğiniz kadar bilgiyi ayrıca istediğiniz tiptekini arraylist altında kolayca tutarız.

ArrayList KList= new ArrayList(); // KListisimli ArrayList nesnesi oluşturalım.

// KListnesnemize sırası karışık tipler yükleyelim
// Add metodu ile ekleyelim.
KList.Add("Ahmet");
KList.Add(12);
KList.Add(true);
KList.Add(32.4f);
KList.Add('c');

// aList'in elemanlarını ekrana yazdıryoruz:
Console.WriteLine("\t KList'in elemanları:");
foreach(int eleman in KList)
Console.WriteLine(eleman);



unutmamamız gereken bir şey var arraylist using System.Collections sınıfı altında bulunduğu için dahil edilmeli.


ArayList Diğer fonksiyonları aşağıda listelenmektedir.
---------------------------------------------------
Add Bir nesneyi ArrayList'in sonuna ekler.

BinarySearch Sıralanmış bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.

Clear ArrayList'in tüm elemanlarını siler. Sıfırlar.

Contains Herhangi bir nesnenin ArrayList'in elemanı olup olmadığını kontrol eder.

Insert Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.

Remove Herhangi bir elemanı diziden siler.

Reverse Diziyi ters çevirir.

Sort ArrayList'i sıralar.

9 Temmuz 2009 Perşembe

Alternatif içecek Arayışları 1 - vişne suyu & meyveli buzlu çay


malzemeler:

•1 kg vişne
•yaklaşık 1,5 litre su
•2 su bardağı toz şeker (miktarını kendi isteğinize göre ayarlayabilirsiniz)
•yarım limonun suyu
hazırlanması:

1. 1 kg vişneyi yıkayıp saplarını koparın. vişneleri geniş ve derin bir tencereye alın. tencereye vişnelerin üzerlerini geçecek kadar su ekleyin. 2 su bardağı toz şekeri de ilave edip orta hararetli ateşte kaynamaya bırakın. (tencerenin kapağı taşma tehlikesine karşı açık olmalı)

2. vişne suyu kaynamaya başlayınca suyun renginin daha kırmızı olması için yarım limon suyunu ekleyin. kaynama işlemini vişneler çatlamaya başlayana kadar sürdürün. soğutup servis yapın.


ablamla üniversitemizin yaz okulu döneminde aynı dersi alırken (management dersiydi sanırım) tenefüs aralarında işletme binasının çaprazındaki kantine gidip birer ice tea alır, manzarada ders saatinin başlamasını beklerdik. ablam benden önce mezun olduktan sonra en çok birlikte geçirdiğimiz bu tenefüsleri özler olmuştum...
benim iki gün önce denediğim buzlu çay tarifini ayşen hanım mutfaktazen mail grubuna göndermişti. onun anlatımını değiştirmeden aktarıyorum.

Sıcaklarda en ferahlatan içeceklerin başında gelir bence ice tea yani soğuk çay. Evde en lezzetlilerini çabuk ve kolayca yapabiliriz.. Ben bir tarafta porselen demlikte siyah çayı 3-5 dakika bırakıyorum ve içine meyva parçaları atıyorum. En sevdiğim karışımlardan biri de çilek , şeftali ve bir kaç karanfil. Sürahinin en az yarısına kadar buzla dolduruyorum ve demi doğrudan buzların üstüne döküyorum . Buzlar eridikten sonra gerektiği kadar su ekliyorum. yarım limonu içine sıkıp , yarım limonu da 4'e bölüp kabuklarıyla içine atıyorum. İstenen şekilde ( şeker , tatlandırıcı , salvia , bal ...) tatlandırdıktan sonra birazbuzdolabında bekliyor ve afiyetle içiliyor .
Soğuk çay yaparken püf noktası demin hemen soğutulması . Bu yüzden bol buz kullanmak gerek . Bu yapılmadığında tadı değişiyor ,acılaşıyor .

7 Temmuz 2009 Salı

Access Replace Function

Access'da Replace Fonksiyonun Syntax aşağıdaki gibi
"Replace ( string1, find, replacement, [start, [count, [compare]]] )"
Örneklerde isterseniz.

Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"

VBA codu olarakda

Dim LResult As String
LResult = Replace ("alphabet", "a", "e")

kullanılabilir.

Access combobox'un index değerine göre verinin comboboxda gösterilmesi

seneryo şöyle : Access üzerine satırlar girdiniz satırlar : a,b,c,d olsun satır indexleride bildiğiniz üzere 0,1,2,3 olur.Diyelimki indexi 2 olan combobox'ın verisi ne ?
(olayın tersi aslında oldukca basit seçili verinin index'ini almak kolay Combobox1.Listindex derdimize çare peki ya tersi index'i biliyoruz hangi veri karşılık geliyor buna )

Dim sallama As String
sallama = combobox1.ItemData(2) ' 2 numaralı list index'e karşılık gelen veriyi al
combobox1.SetFocus
combobox1.Text = sallama ' combobox tekrar yazdır

Polymorphism Nedir

Polymorphism (Çok Biçimlilik)
Nesne Yönelimlenin anlatması biraz karışık ilkelerinden biridir ama bir seneryo ile olayı anlatmaya çalışalım.Satınal isimli bir fonksiyonumuz olsun. eğer i ürünü satın alınacak ise sadece geriye i'yi geri döndüren bir fonksiyon olmalı.Peki Satınal i ve j gibi iki farklı ürününde satın alınmasında kullanılmak isteniyor işte bu durumda SatınAl fonksiyonu çok biçimli olarak ele almak iyi bir seçim olmalı hem kodu koyalım.

Module Module1

Sub Main()
Dim two As New One()
WriteLine(two.satinal(10))
'calls the function with one argument
WriteLine(two.satinal(10, 20))
'calls the function with two arguments
WriteLine(two.satinal(10, 20, 30))
'calls the function with three arguments
Read()
End Sub

End Module

Public Class One
Public i, j, k As Integer

Public Function satinal(ByVal i As Integer) As Integer
'function with one argument
Return i
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer) As Integer
'function with two arguments
Return i + j
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer, ByVal k As Integer) As Integer
'function with three arguments
Return i + j + k
End Function

End Class


Çıktı olarak da
10
30
60
üreteceği aşıkar

vb.net Inheritanace (Miras)

Inheritance Nedir

OOP yazarken çokca kullanılan bir işlem.Inheritance (Dahillendirme) anlamak için OOP mantığını bilmek gerekiyor.Tabiki.


Araba diye bir clasımız var mı var.Özellikleride tanımlı motoru var, 4 kapılı, direksiyonu falan filan....... tanımladınız.


şimdi BMW de bir araba doğru muyum doğru. Onunda 4 kapısı,motoru,direksiyonu var mı var şimdi arabanın tüm özelliklerini BMW için bir daha yazarsak Ayıp ederiz.
Bunun için BMW Class'ına araba Classını Inherit etmeliyiz. işte Yapısı nasıl peki ? İşte Syntax.


Public Class Araba
---
---
End Class

Public Class BMW
Inherits Araba
---
---
End Class


Bu kadar .....

Bir de örnek çakalım pekişsin.....
Imports System.Console
Module Module1

Sub Main()
Dim ss As New Two()
WriteLine(ss.sum())
Read()
End Sub

End Module

Public Class One
'base class
Public i As Integer = 10
Public j As Integer = 20

Public Function add() As Integer
Return i + j
End Function

End Class

Public Class Two
Inherits One
'derived class. class two inherited from class one
Public k As Integer = 100

Public Function sum() As Integer
'using the variables, function from base class and adding more functionality
Return i + j + k
End Function

End Class



Sonucun ne dönmesini beklersiniz. normalde ss Two Class türemiştir.onunda tek elemanı k =100 O halde sonuç 100 olur demeyin sakın :( Two class'ı One classını inherit etmiş ve doğal olarak i+j+k değerlerinide alıp 130 olarak sonuç bulunur.

Constructors Nedir

Aslında Constructer oldukca çok kullanılan Class lar içindeki Sub-End Sub parametreleri ile tanımlı (vb.net için) kod bloklarıdır. Örnek le anlatacak olursak;
Public Class Employee
Public Sub Work()
System.Console.WriteLine("I am working.")
End Sub
End Class


Work bir Constructer olarak tanımlanmış ve kullanımı ise
Dim employee As Employee
employee = New Employee()
employee.Work()
Şeklinde yazılabilir.

Base Classlarla ilgili olarak nasıl kullanabiliriz.Derseniz Inheritance konusunda biraz değineceğim fakat bir örnek olsun .net coşkun gibilerinden....
Public Class personel
Public Sub New()
System.Console.WriteLine("Personelin constructor'ü.")
End Sub

Public Sub Work()
System.Console.WriteLine(Personel Çalışıyor.")
End Sub
End Class

Public Class Patron: Inherits personel
Public Sub New()
System.Console.WriteLine("Patron constructor.")
End Sub
End Class

Patron class'ına Personel Dahil Edilerek (Inherit).onun özellikleri alınmış.
Patronda Aslında bir personeldir yaklaşımı katılmış oluyor.

Kullanımı ise şöyle

Dim manager As Manager
manager = New Manager()

Muhtemel Çıktımız ise

Personel constructor'ü.
Patron constructor.
Şeklinde olmalı gibi geliyor insanın içine.

Class ve Objeler

-Class ve Objeler
Visual Basic'de Class lar Class-End Class ifadeleri arasına yazılır.
incelemek için bir Class Syntax verecek olursak
Public Class Test
----- Variables
-----Methods
-----Properties
-----Events
End Class
Şeklinde düşünebiliriz.
Bir Classtan Yeni bir obje türetmek istenirse o obje New ifadesiyle türeterek yeni isimle oluştururuz.Örnek Olarak Dim obj As New Test()
Şimdi bir Class ve Bu classtaki nesneden türetilen bir objeyle basit bir consol uygulaması yapabiliriz.
Module Module1
Imports System.Console

Sub Main()
Dim obj As New Test()
'creating a object obj for Test class
obj.disp()
'calling the disp method using obj
Read()
End Sub

End Module

Public Class Test
'creating a class named Test
Sub disp()
'a method named disp in the class
Write("Welcome to OOP")
End Sub
End Class

Visual Basic ile OOP

OOP konularını bu başlıklar altında sınıflamak oldukca iyi olacak diye düşünüyorum.

-Class ve Objeler
-Constructors
-Inheritance
-Polymorphism
-Interfaces
-Abstract Classes
-Structures
Şimdi kısa kısa konuları özetleyeceğim.Emin değil fakat daha sonra ayrıntılı olarakda konuya girebilirim.

Böylece Nesne Yönelimli Yazılım Dilinin Üç Prensibinide içermiş olacağız. Inheritance(Miras) ,encapsulation ve polymorphism’dir

6 Temmuz 2009 Pazartesi

Ödüllü kadın yönetici erkek çıktı


"Ödüllü kadın yönetici erkek çıktı
İngiltere'de teknoloji sektöründe gösterdiği başarılarından dolayı 35 yaş altındaki “en başarılı iş kadını” ödülü alan Kate Craig'in aslında bir erkek olduğu ortaya çıktı."

3 Temmuz 2009 Cuma

MSSQL 2008 bak dosyası yükleme Error 3210 giderimi

Merhabalar elinizde *.bak dosyası varsa ve bunu mssql 2008 kayıt etmek istiyorsanız.Öncelikle nasıl yapacağınızı bilmelisiniz ve sonrada muhtemel Error 3210 nasıl giderileceğini bilmeliyiz.


Öncelikle *.bak dosyasını nasıl database yükleriz.Öncelikle Kolaylık olması için bak dosyamızı

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup altına koyalım.Microsoft Sql Server Management Studio açalım database bağlanıp .
Bağlandıktan sonra Database Dalının üstüne gelerek Restore DataBase diyelim.
to database kısmına daha önce tablolarımızda olmayan bir isim yazalım.Source For Restore Kısmında dosyadan yedekleme yapacağımız için From Device düğmesini seçelim ve Backup Media için File Seçelim.şimdi Add diyerek *.bak dosyamızı seçebiliriz.
Ok diyerek pencemizden veritabanımızı seçelim ve restore işlemini tamamlayalım.
Eğer Error 3210 almışsanız ozaman
1. SQL Server Configuration Manager açın.
2.Gerekli SQL Sever sol tuşla tıklayın
3.Properties SEçin
4. Logon tab'ında Açılır kapanır menuden 'Local system' seçin.
Hatanızı çözecektir.Unutmayın Sql server yeniden başlar ve hizmetiniz bir süre aksayabilir.