18 Eylül 2009 Cuma

C# String işlemleri


String içindeki alt stringleri elde etmek
SubString() –
Bir string ifadenin içinde,4.karakterden başlayıp 10 karakter elde etmek istiyor isek bu durumda kullanacağımız metod SubString() metodudur.

Aşağıdaki kod parçalarını inceleyelim;

string text = "Visual Studio 2005";

Console.WriteLine(text.Substring(7,4)); // Ekran Çıktısı : "Stud"

Console.WriteLine(text.Substring(7)); // Ekran Çıktısı : "Studio 2005"




ToLower() – ToUpper() – ToLowerInvariant() - ToUpperInvariant()

Bir string ifadedeki bütün karakterleri küçük veya bütün karakterleri büyük yapmak istiyor iseniz bu fonksiyonlar işinizi görecektir.

Aşağıdaki kod parçasına ve ekran çıktısına bakalım;

string text = "Visual Studio 2005";

Console.WriteLine(text.ToLower()); // visual studio 2005

Console.WriteLine(text.ToLowerInvariant()); // visual studio 2005



Console.WriteLine(text.ToUpper()); // VİSUAL STUDİO 2005

Console.WriteLine(text.ToUpperInvariant()); // VISUAL STUDIO 2005




ToLower() ve ToUpper() metodları karakterleri olduğu gibi büyük veya küçük harfe çevirirken, ToLowerInvariant() ve ToUpperInvariant() metodları ise ilgili dile göre değişim göstermektedir. Uygulamayı gerçekleştirdiğim işletim sistemi ingilizce olduğundan dolayı küçük ‘i’ karakterleri büyük harfe çevrildiğinde ‘I’ haline dönüştürülüyor.”Invariant” kullanılmayan metodlarda ise ‘i’ harfleri olduğu gibi ‘İ’ harfine dönüştürülüyor.

Boşlukları kaldıran fonksiyonlar

Trim() – TrimEnd() – TrimStart() –

Trim metodları, string içindeki boşluklarla bir derdiniz var ise çok işinize yarayacaktır.

Aşağıdaki kod örneğini ve açıklamaları inceleyelim;

string text = " Visual Studio 2005 ";



/*

* Trim() : Text'in başındaki ve sonundaki boşlukları kaldırır

* TrimEnd() : Text'in sonundaki boşlukları kaldırır.

* TrimStart() : Text'in başındaki boşlukları kaldırır.

*

*/

Console.WriteLine("-{0}-", text.Trim()); // -Visual Studio 2005-

Console.WriteLine("-{0}-", text.TrimEnd()); // - Visual Studio 2005-

Console.WriteLine("-{0}-", text.TrimStart()); // -Visual Studio 2005 -







Yer değiştirme fonksiyonu
Replace() –

Bir string içindeki bir değeri başka bir değerle değiştirmek istiyor iseniz Replace() metodunu kullanmanız gerekmektedir.

Aşağıdaki kod parçacığını inceleyelim;

string text = "Visual Studio 2005";



string text2 = text.Replace("sual", "SORU");

Console.WriteLine(text2); // "Ekran Çıktısı : ViSORU Studio 2005"





String inşa eden sınıf
StringBuilder()

Birden fazla stringi birleştirmek istiyor iseniz + ile bunu yapabilirsiniz.(str4 = str1+str2+str3).Fakat bu yöntem performans açısından iyi değildir.Onun yerine StringBuilder sınıfını kullanmak yazılımınızı daha kaliteli hale getirecektir.

Aşağıdaki kod parçacığını inceleyelim;

StringBuilder builder = new StringBuilder();

// .Net dilleri dizi içinde tanımlanıyor

string[] diller = new string[] { "C#", "VB", "C++" };



builder.AppendLine(".Net Dilleri..");

builder.AppendLine(); // Boş bir satır ekleniyor.

for (int i = 0; i <>" ifadesi ekleniyor.

builder.Insert(0, "-->");

// Ekrana ToString() metodu ile yazdırılıyor.

Console.WriteLine(builder.ToString());




Makalemin en başında belirttiğim örneklerde birden fazla string’in birleştirilmesiyle ilgili örneklerin hepsi StringBuilder sınıfı kullanılarak yapılmalıdır.

Her ne kadar çözüm yolları çok basit olsa da incelediğimiz metodlar bir yazılımda sık sık kullanabileceğimiz metodlardır.

13 Eylül 2009 Pazar

Solution Explorer Kayboldu (visual Studio 2008)

visual studio 2008 yen bir proje eklediğinizde anynı solution altına bir proje daha eklemek için Solution görmek gerekli ama ne yazık ki arsayılı olarak visual studio 2008 altında bir solution altında sadece bir tane proje olduğunda solution görünmüyor.
Ve solution göstermek gerekiyor.
Bunun için
Tools -> Options -> Projects and Solutions -> General -> ‘Always Show Solution’ işaretlemek yeterli

8 Eylül 2009 Salı

SQL Server C# ile Database Backup Ve Database Restore İşlemleri

public bool BACKUPDATABASE(string DatabaseName)
{
bool success = false;
string SQLQUERY = "";
SQLQUERY = @" BACKUP DATABASE [" + DatabaseName + "] " +
" TO DISK = N'"+ DatabaseName + ".bak' " +
" WITH INIT";
try
{
SqlCommand cmd = new SqlCommand(SQLQUERY);
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteScalar();
success = true;

}
catch (Exception ex)
{
MessageBox.Show("BACKUPDATABASE Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return success;
}

------------------------------------------------------------
public bool RESTOREDATABASE(string DatabaseName)
{
bool success = false;
string SQLQUERY = "";
SQLQUERY = @" RESTORE DATABASE [" + DatabaseName + "] " +
" FROM DISK = N'" + DatabaseName + ".bak' " +
" WITH RECOVERY";
try
{
SqlCommand cmd = new SqlCommand(SQLQUERY);
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteScalar();
success = true;
}
catch (Exception ex)
{
MessageBox.Show("RESTOREDATABASE Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return success;
}



Sql server ile backup işlemleri hiçte zor değil yanlız benim burada bağlantımı kapatmadığıma aldanmayın. siz işiniz bittiğinde bağlantınızı kapatın.Ben Open işlemi için bir property yazıp eğer açıksa kapat şeklinde bir özellik kattım.

SQL server C# Veritabanı silmek


public bool DELETEBACKUPDATABASE(string DatabaseName)
{
bool success = false;
string SQLQUERY = "";
SQLQUERY = @" DROP DATABASE [" + DatabaseName + "] ";
try
{
SqlCommand cmd = new SqlCommand(SQLQUERY);
intlogin = 1;
Connections.con = null;
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteNonQuery();
success = true;
}
catch (Exception ex)
{
MessageBox.Show("DELETEBACKUPDATABASE Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return success;
}



Veritabanı silmedeki asıl sorun
sql komutu çalıştırmak için ExecuteNonQuery ihtiyaç duymamız ve ve ExecuteNonQuery ise açık bir bağlantıya ihtiyaç duyması bağlantı açık olduğunda ise veritabanı silinemiyor.
O yüzden Connection String yazarken mutlaka farklı bir veritabanı ile bağlantı kurmalıyız.

Yani Ne yazıkki MSSQL ile bağlı olduğunuz veritabanını silmek bindiğiniz dalı kesmek gibi birşey olduğundan izin verilmiyor. En iyi yol herhangi bir veritabanına bağlanıp. öyle Silmek

Peki Her zaman olan veritabanı nı nereden bulacağız derseniz.Sistem Veritabanlarından birine bağlanın gitsin derim.

26 Ağustos 2009 Çarşamba

SQL SERVER 2008 Save Not Permitted

sql server management studio kurulduğunda ilişkili tablolar üzerinde işlem yapılırken
enteresan bir hata veriyor. Save not Permited ... şeklinde.
Hata'nın çözümü çok basit.
Management studio 2008 > Menu > tools> options >Designers >Table and Database Designer
girip Prevent saving changes that require the table to be re-created yazan check boşı temizleyelim.Management Tool daha sonra ilişkili olduğu tablolarda değişiklik yapmam lazım falan derse
gönderin gitsin.

24 Ağustos 2009 Pazartesi

Regular Expression Library 1

\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}
Mail Adress Regular Expression
-------------------------------------------
0\([0-9][0-9][0-9]\)[0-9][0-9][0-9]\-[0-9][0-9]\-[0-9][0-9]
Turkiye için 0(xxx)xxx-xx-xx şeklinde telefon kullanım için regular expression biçimi
-------------------------------------------
((htf)tp(s?)\:\/\/(www\.)+[a-zA-Z]+\.[a-zA-Z]+(htf)tp(s?)\:\/\/(www\.)+[a-zA-Z]+\.[a-zA-Z]+\.[a-zA-Z]+)

web site regular expression .

13 Ağustos 2009 Perşembe

Sql Server sa şifresini değiştirmek

Start > Run > cmd.exe (Başlat > Çalıştır > cmd.exe)
Komut istemine,

OSQL –S –E
1> EXEC sp_password NULL, ‘yeni_sifre’, ‘sa’
2> GO

yazdığımızda artık ‘sa’ şifremiz yeni_sifre kısmına yazdığımız şifre olacaktır.

2.yol

Yeni bir SQL sorgusu açtıktan sonra sorgumuza,

USE [master]

GO

ALTER LOGIN [sa] WITH DEFAULT_DATABASE=[master],

DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=ON, CHECK_POLICY=ON

GO

USE [master]

GO

ALTER LOGIN [sa] WITH PASSWORD=N'yeni_sifre' MUST_CHANGE

GO

yazdığımızda yine yeni_sifre kısmına yazdığımız şifre yeni ‘sa’ şifremiz olacaktır.