Şub
24
2013
C#

C# - Extension Method ile String Encode-Decode

Özel karakterler içeren metinleri veritabanına yazmak sorun teşkil edebilir. Bunun için bu özel karakterlerden kurtulmamız gerekir. String sınıfımıza Extension Method (ilave metod) ekleyerek, projemiz içerisinde istediğimiz yerde kullanabiliriz. 

Extension Methods yazılırken, metodların ve metodları barındıran Class'ın static olması gerektiği unutulmamalı, metodların ilk parametresinin this başladığına dikkat edilmelidir.

Kullanılacak Namespace;

using System;
using System.Web;

Kod örneğimiz;

public static string ToSafe(this string value)
{
   if(string.IsNullOrEmpty(value))
     return value;
   return HttpUtility.HtmlEncode(value);
}
public static string ToUnSafe(this string value)
{
   if(string.IsNullOrEmpty(value))
     return value;
   return HttpUtility.HtmlDecode(value);
}

Kullanım örneği;

string text = "<b>Buraya Tıklayın</b>";
string safeText = text.ToSafe();
string unSafeText = safeText.ToUnSafe();
Console.WriteLine("SAFE   : " + safeText);
Console.WriteLine("UNSAFE : " + unSafeText);

Sonuç;

 

Smile

Şub
24
2013

TSQL - Tablo Identity Resetleme (Truncate Yapmadan)

Merhabalar,
Bu yazımızda, SQL veritabanı tablolarında ki ID (otomatik arttırdığımız IDENTITY) kolonlarda ki numaranın nasıl değiştirileceğini öğreneceğiz.
Neden değiştirmek isteriz ki :)
Mesela, tabloda 5 kayıt var ve yeni bir kayıt ekledik. Ve baktık en son kayıt ID' si 25. :( Tabii ki bunun nedeni daha önce ekleyip sildiğimiz kayıtlar var demektir. Ben bu durumlara bazen sinir oluyorum ve ID numaraları sıra ile gitsin isterim :)
Bunu için kullanacağımız kod;

DBCC CHECKIDENT(Customer, RESEED, 5)
GO

DBCC CHECKIDENT (TABLOADI, RESEED, SONNUMARA)
TABLOADI : Değişikliği yapacağınız tablonun adı
SONNUMARA : Tabloda en son verilmiş ID no. İsterseniz daha büyük bir sayıda verebilirsiniz.

Şöyle bir mesaj alırız;

Checking identity information: current identity value '12', current column value '5'.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Şuan ki numaranın 12 olduğunu ve bizim onu 5 ile değiştirdiğimizi bildirir.

Yapacağımız ilk INSERT işleminde ID numarasına 6 verecektir. :)
Belki bir gün işinize yarar. :)

 

Şub
24
2013
C#

C# - Merkez Bankasından Günlük Kur Fiyatlarını Çekmek

Merhabalar,
Bu yazımızda C# ile TC Merkez Bankasından günlük kur fiyatlarının nasıl alınabileceğini göstereceğim. Çok istediğim ama uğraştığım projelerde hiç yapma şansım olmamıştı.

Konsol uygulaması ile yapacağım.

Öncelikle bilmemiz gerekenler. Günlük kurları almak için gerekli URL

http://www.tcmb.gov.tr/kurlar/today.xml

İstediğiniz herhangi bir güne ait kurları çekmek için

http://www.tcmb.gov.tr/kurlar/YYYYAA/GGAAYYYY.xml
örnek
http://www.tcmb.gov.tr/kurlar/201302/14022013.xml

NOT: İstenilen tarih hafta içi iş günü değil ise, en son yani Cuma gününe ait kur fiyatları gelecektir.

// Bugün (en son iş gününe) e ait döviz kurları için
string today = "http://www.tcmb.gov.tr/kurlar/today.xml";

// 14 Şubat 2013 e ait döviz kurları için
string anyDays = "http://www.tcmb.gov.tr/kurlar/201302/14022013.xml";

var xmlDoc = new XmlDocument();
xmlDoc.Load(today);

// Xml içinden tarihi alma - gerekli olabilir
DateTime exchangeDate = Convert.ToDateTime(xmlDoc.SelectSingleNode("//Tarih_Date").Attributes["Tarih"].Value);

string USD =xmlDoc.SelectSingleNode("Tarih_Date/Currency[@Kod='USD']/BanknoteSelling").InnerXml;
string EURO = xmlDoc.SelectSingleNode("Tarih_Date/Currency[@Kod='EUR']/BanknoteSelling").InnerXml;
string POUND = xmlDoc.SelectSingleNode("Tarih_Date/Currency[@Kod='GBP']/BanknoteSelling").InnerXml;

Console.WriteLine(string.Format("Tarih {0} USD   : {1}", exchangeDate.ToShortDateString(), USD));
Console.WriteLine(string.Format("Tarih {0} EURO  : {1}", exchangeDate.ToShortDateString(), EURO));
Console.WriteLine(string.Format("Tarih {0} POUND : {1}", exchangeDate.ToShortDateString(), POUND));

Sonuç;

Tarih 22.02.2013 USD     : 1.7963
Tarih 22.02.2013 EURO   : 2.3715
Tarih 22.02.2013 POUND : 2.748

Smile

Şub
23
2013

SQL - OSQL ile Veritabanına Konsoldan Bağlanma

MSSQL yada SQLEXPRESS yüklü bir makinada SQL Management Studio yok ise, veritabanına girip sorgu atmak istiyorsanız, OSQL kullanarak konsoldan istediğimizi yapabiliriz.
Öncelikle Başlat-Çalıştır dan "CMD" yazıp konsolu açmamız gerek. 
Standart bağlantı cümlemiz aşağıdaki gibidir.

osql -S [. / Server Name] [-E yada -U Username -P Password]

OSQL - Ana komutumuz
-S = Sunucu (Server)
. = Localhost (yada sunucu adı)
-E = Güvenli Bağlantı (Trusted Connection)
-U = Kullanıcı Adı
-P = Parola

Güvenli bağlantı ile Localhosta bağlantı için;

osql -S . -E

Bu kadar. "1>" ekrana geldiyse artık bağlandınız demektir. Hata mesajı geldi ise, ya makinada SQL kurulu değil, yada SQL aktif değildir, yada güvenli bağlantıya izin vermiyordur. Kullanıcı adı ve parola kullanarak tekrar deneyebilirsiniz.
Kullanıcı adı ve parola ile giriş için;

osql -S . -U sa -P 1234

Çıkış için "1> exit" EXIT yazıp ENTER'a basmanız yeterlidir.
Farklı bir makinadaki veritabanına bağlanmak için;

osql -S 192.168.0.0\MSSQLSERVER -U sa -P 1234

Sunucu adı yada IP bilgisini yazarak bağlanabilirsiniz.

Sorgularınızı çalıştırmak için yapmanız gereken TSQL cümlenizi yazıp, bir alt satıra geçip GO demek.
GO komutu kullanılmadan sorgunuz çalışmıyor. Örnek;

1> SELECT TOP 5 * FROM CITY 
2> WHERE COUNTRYCODE=90 
3> GO

Bu ekranda SQL Management Studio ile yapabildiğiniz tüm işlemleri yapabilirsiniz.
Ben genelde SQL Server'ın çalışıp çalışmadığını, kullanıcının aktif olup olmadığını OSQL ile hızlı bir şekilde öğrenmek için kullanırım.
Size de yardımı olduysa ne mutlu bana.
Smile

Aylara Göre

En Son Yorumlar

Gösterme