27 Mayıs 2009 Çarşamba

E-mail gonderme

In order to send email in C# code, do the following:

// create mail message object
MailMessage mail = new MailMessage();
mail.From = ""; // put the from address here
mail.To = ""; // put to address here
mail.Subject = ""; // put subject here
mail.Body = ""; // put body of email here
SmtpMail.SmtpServer = ""; // put smtp server you will use here
// and then send the mail
SmtpMail.Send(mail);

13 Mayıs 2009 Çarşamba

LINQ işlemleri

int[] sayilar={3,2,5,6,1,2,8,9,0};
var bulunan = from n in sayilar
where n <= 6 orderby n select n;

Ex: Diziyle verilen isimleri alıp onları büyük ve küçük harflere çeviren LINQ ve devamı. Aynı olan isimleri ikinciye almaz.

string[] names = { "aHmet", "uZuN", "IsTanBul", "bUrSA" ,"AHmet"};
var withLowerUpperLetters = (from n in names
orderby n
select new { Lower = n.ToLower(), Upper = n.ToUpper() }).Distinct();
string sonuc = "";
foreach (var v in withLowerUpperLetters)
{
sonuc += v.Lower + " ";
}
sonuc += "\n";
foreach (var v in withLowerUpperLetters)
{
sonuc += v.Upper + " ";
}
MessageBox.Show(sonuc);



son örnek olarak; sayilar dizisindeki elemanları 5'e bölümünden kalan sayılarına göre gruplayan LINQ.


string sonuc = "";
int[] sayilar = { 0, 2, 3, 7, 8, 9, 6, 4, 1 };
var numberGroups = from n in sayilar
group n by n % 5 into g
select new { g.Key, numbers = g };
foreach (var g in numberGroups)
{
sonuc += g.Key + " kalanı verenler ";
foreach (var n in g.numbers)
{
sonuc += n+" ";
}
sonuc += "\n";
}
MessageBox.Show(sonuc);


LINQ to SQL


Veritabanını sorgulamak için kulanılan LINQ ya denir.
Herhangi bir veritabanına ait bir tabloyu sorgulamak için projenizin içerisine Add->New Item->LINQ To SQL Classes eklemeniz gerekiyor. Bu bize projemizde .dbml uzantılı bir sayfa daha oluşmasını sağlıyor. Sonra sorgulamak istediğimiz tabloları Server Explorer dan bu sayfa üzerine sürükleyip bırakmalıyız. Biraz sonraki örneklerde Northwind veritabanı ve içinde calisanlar ve siparisler veritabanı kullanılmıştır.
Şimdi öncelikle kod kısmında yeni oluşturduğumuz sayfayı kullanabilmek için bir kopyasını alalım
NorthwindDataContext db = new NorthwindDataContext();

Ex1: Calisanlar tablosundan unvanı Mr. olanları çekelim. Bunu ilk önce bildiğimiz yöntemle yapalım aradaki fark anlaşılsın diye.

string baglanti = "Server=.; Database=Northwind; Integrated Security=SSPI;";
SqlConnection con = new SqlConnection(baglanti);
DataTable calisanlar = new DataTable();
SqlDataAdapter da = new SqlDataAdapter("Select * from calisanlar where unvan = 'Mr.'", con);
da.Fill(calisanlar);
dataGridView1.DataSource = calisanlar;
Şimdi de eşdeğer LINQ sorgusu
var calisanlar = from n in db.Calisanlars
where n.Unvan == "Mr."
select n;
dataGridView1.DataSource = calisanlar;


Ex2: Calisanlar ve siparisler tablosunu birleştirerek calisanID, adSoyad, ulke, unvan ve nakliyeUcretleri alanlarından ilk 10 tanesini alan LINQ

var calisanlar = (from c in db.Calisanlars
from s in db.Siparislers
where c.CalisanID == s.CalisanID
select new { s.CalisanID, adSoyad = c.Ad + " " + c.Soyad, c.Ulke, c.Unvan, s.NakliyeUcreti }).Take(10);


Ex3: Veri tabanına yeni bir kayıt ekleyelim.
Calisanlar calisan = new Calisanlar();
calisan.Ad = "Ahmet";
calisan.Soyad = "Kısa";
calisan.Unvan = "Mr.";
calisan.DogumTarihi = DateTime.Now;
db.Calisanlars.InsertOnSubmit(calisan);
db.SubmitChanges(); //Veri tabanına değişikleri kaydediyor. Adapter nesnesinin Update metodu gibi.

Ex4: Soyadımı yanlış yazmışım onu UPDATE edelim.

Calisanlar calisan = db.Calisanlars.First(c => c.Ad == "Ahmet");
calisan.Soyad = "UZUN";
db.SubmitChanges();


Ex5: Birden çok kayıt olursa UPDATE etmek istediğimiz. Calisanlar tablosunda bolge alanları boş bırakılmış en azından o alanlara boş yazalım.

var calisanlar = from c in db.Calisanlars
select c;
foreach (var calisan in calisanlar)
{
calisan.Bolge = "yok";
}
db.SubmitChanges();


Ex6: Yabancıların yanında benim adım iyi durmadı onu SİLelim.

var silinecek = from c in db.Calisanlars
where c.Ad == "Ahmet" && c.Soyad == "UZUN"
select c;
db.Calisanlars.DeleteAllOnSubmit(silinecek);
db.SubmitChanges();

SQL alan genişliği kullanma

SELECT ID, Turkce, Ingilizce
FROM TE
WHERE (LEN(Ingilizce) < 50)

ArrayList

protected void Page_Load(object sender, EventArgse)

{

List<string>RenkListesi = new List<string>();

RenkListesi.Add("Kırmızı");

RenkListesi.Add("Yeşil");

RenkListesi.Add("Mavi");

RenkListesi.Add("Sarı");

RenkListesi.Add("Turuncu");

CheckBoxList1.DataSource = RenkListesi;

CheckBoxList1.DataBind();

}

2 Mayıs 2009 Cumartesi

PDA Bluetooth device arama

public bool ConnectBlueTooth()

{

string BTMac = "00:01:58:08:3D:ED";

BluetoothAddress BTAddress;

BluetoothClient BTClient = new BluetoothClient();

BluetoothEndPoint BTEndPoint;

Guid spguid = BluetoothService.SerialPort;

BTAddress = BluetoothAddress.Parse(BTMac);

BTEndPoint = new BluetoothEndPoint(BTAddress, spguid);

try

{

BluetoothSecurity.PairRequest(BTAddress, strDevicePassKey);

Application.DoEvents();

BTClient = new BluetoothClient();

BTClient.Connect(BTEndPoint);

return true;

}

catch { return false; }

}