29 Ekim 2008 Çarşamba

ASP.NET de Image'e Veritabanından Resim Yüklemek

Web sitelerinde genellikle Image kontrollerine yüklemek istediğimiz resimler server’da dosya sisteminden çekilir.

Image1.ImageUrl = "C:Resim.jpg";

gibi bir kod parçasıyla istediğimiz resmi yükleriz. Ama bazen resimlerimizi veritabanında tutuyor olup oradan dinamik olarak yüklememiz gerekebilir. (Dynamically load image to Image control from database with Asp.NET) Böyle bir durumda doğrudan atama yapamayız. Ama şu şekilde bir çözüm bulabiliriz.

İlk olarak Default.aspx sayfasını açalım ve bir dynamicImage adlı bir Image kontrolü ekleyelim. Daha sonra yeni bir sayfa ekleyelim ve adını DynamicallyLoadImage.aspx olarak verelim. Eklediğimiz Image kontrolünün ImageUrl özelliğine DynamicallyLoadImage.aspx?ImageID=1 değerini verelim. Default.aspx sayfamızın kodları aşağıdaki gibidir.

Default.aspx



Ve yapacağımız ikinci şey ise DynamicallyLoadImage.aspx.cs dosyasına aşağıdaki kodları yazmak.

using System.Data.OracleClient;
public partial class DynamicallyLoadImage: System.Web.UI.Page {
 protected void Page_Load(object sender, EventArgs e) {
  DataTable dTable = new DataTable();
  string sql = “SELECT ImageData FROM ImageDatabase“;
  sql += “WHERE ImageID = ‘” + Request.QueryString["ImageID"] + ”‘”;
  OracleConnection con = new OracleConnection(“SERVER = (DESCRIPTION = (ADDRESS = “ + “ (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))” +  “ (CONNECT_DATA = (SERVICE_NAME = XE)));“ +  “uid = TAYFUN; pwd = TT123;”);
  OracleDataAdapter adp = new OracleDataAdapter(sql, con);
  adp.Fill(dTable);
  byte[] ImageData = (byte[])(dTable.Rows[0]["ImageData"]);
  try {
   Response.ContentType = “image / jpeg”;
   Response.BinaryWrite(ImageData);
  } catch {
   Response.Write(“Resim Bulunamadı”);
  }
 }
}

İlk olarak, ben Oracle veritabanı kullanmıştım, ama SQL Server kullanılırsa da bir şey fark etmez. İkinci olarak da ben sadece jpeg veya jpg uzantılı resimler için yaptım, farklı bir uzantı gelirse hata verecektir. Dilerseniz uzantıyı da veritabanında kaydederek herhangi bir uzantıya sahip resim için bunu yapabilirsiniz.

Resimlerin veritabanında tutulması güvenlik açısından iyidir, ama performans açısından iyi değildir. Resimleri dosya sisteminde tutup veritabanında da adresini tutarsanız programcılık mantığına daha uygun bir yapı oluşturmuş olursunuz.

18 Ekim 2008 Cumartesi

SQL Server'da Veritabanı Tablo Bilgilerini Listelemek

Bu yazımda sizlere MS SQL Server’da oluşturduğumuz bir veritabanının içindeki tabloları ve seçtiğimiz bir tablonun içindeki alanları listeleyen bir program yazacağım.

Her şeyden önce böyle bir şeye neden ihtiyacımız olur onu anlatmaya çalışayım. Diyelim ki Microsoft’un sorgu oluşturma arayüzü olan SQL Server Management Studio’daki Query Builder’i ya da piyasadaki diğer programları beğenmiyorsunuz.(Ben böyle bir şey demedim :P) Ya da kendinize ait bir Query Builder yapmak istiyorsunuz. O zaman böyle bir şeye ihtiyacınız düşecektir. Staj yaptığım yerde benden böyle bir şey yapmam istenmişti. Ben ORACLE ile yapmıştım ama arada hiçbir fark yok. Tek değişen sorgu cümleleri. Server’a uygun sorguyu gönderdikten sonra size sadece verileri düzenlemek kalıyor.

Programda iki adet DataGridView olacak. Birincisinde veritabanındaki tablolar listelenecek, ikincisinde ise birincide seçilen tabloya ait alanlar listelenecek. Aşağıdaki kodları programımıza ekleyelim.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TabloIslemleriSQL
{
public partial class Form1 : Form
{
   public Form1()
   {
    InitializeComponent();
   }

   string conStr = "DATA SOURCE=.; INITIAL CATALOG = veritabani;
     USER ID = tayfun; PASSWORD = tayfun; INTEGRATED SECURITY = TRUE";
   SqlDataAdapter adp;
   DataTable dt;
   SqlConnection sqlCon;

   private void Form1_Load(object sender, EventArgs e)
   {
    try
    {
     dt = new DataTable();
     string sorgu = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_TYPE =‘BASE TABLE’ AND TABLE_NAME != ’sysdiagrams’";
     sqlCon = new SqlConnection(conStr);
     adp = new SqlDataAdapter(sorgu, sqlCon);
     adp.Fill(dt);
     dgrdTablolar.DataSource = dt;
    }
    catch { }
   }
   private void dgrdTablolar_SelectionChanged(object sender,
     EventArgs e)
   {
    try
    {
     dt = new DataTable();
     string tabloAdi = dgrdTablolar.CurrentRow.Cells[0]
       .Value.ToString();
     string sorgu = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA
       .COLUMNS WHERE TABLE_NAME = ‘" + tabloAdi + "’";
     adp = new SqlDataAdapter(sorgu, sqlCon);
     adp.Fill(dt);
     dgrdAlanlar.DataSource = dt;
    }
    catch { }
   }
}
}

15 Ekim 2008 Çarşamba

O Da Bir Zamanlar Güneşti

Ve bir gün ayrılmak istedi dünya güneşten,
Yeni yerler keşfetmek, evrenin karanlıklarına ışık tutmak için.
Diğer birkaçı da onu takip etti,
Ayrıldılar sonunda.

İlk zamanlar o kadar iyiydi ki her şey,
Ne de parlaktı alevi.
Kardeşleri bile hayran kalmıştı ona.
Sevinçle ilerlemeye başladı uzaklara doğru…
Aydınlattıkça aydınlanıyor,
Aydınlandıkça aydınlatıyordu...

Uzaklaştıkça yaşlanmaya başladı dünya.
Zaman o kadar yavaş ve hızlı geçiyordu ki,
Nasıl olduğunu anlamıyordu bile.
Ama olsun, o çok büyük bir varlıktı,
Herkes ona saygı duyuyor, onu seviyordu…

Zaman geçtikçe aslını unutmaya başladı,
Ateşi sönmeye, etrafını karanlıklar kaplamaya…
Ve içini bir korku kapladı,
Kardeşlerinden de ayrılmış, yapayalnız kalmıştı.
Artık eskisi kadar mutlu da değildi.
Hiç ayrılmasa mıydı acaba?

İçindeki umutlar bir bir tükendi.
Tüm parlaklığı azaldı,
Halbuki uzaklara gidip, umut saçacaktı,
Yol açacaktı yolunu kaybetmişlere,
Hayat verecekti sonsuz enerjisiyle,
Ama olmadı…

Sonunda alevi tamamen söndü.
Korkuyla sürüklenmeye başladı,
Karanlığa doğru…
Yapacak hiçbir şey yoktu,
Yok oluyordu.
Dipsiz bir kuyunun dibine doğru
Çaresizce ilerliyordu.

Bir an uzaklarda bir ışık gördü,
Düşündü,
Eğer ona ulaşabilirse eskisi gibi mutlu olacaktı,
O ona kaybettiği her şeyi verecekti,
Onun kölesi bile olabilirdi tekrar mutlu olmak için.

"O ne büyük bir lider." dedi ve çıktı yola.
Zar zor yolunu çevirdi ona doğru,
Ama yeterince dönememişti.
"Olsun" dedi, "O bana yol göstersin de;"
"Gerekirse yanına varamayayım."

Baktı ki tanıdık birileri de var burada,
Kardeşleri…
Onlardan yakın zamanda ayrılmıştı.
Tanıdı hepsini.
"Tamam" dedi.
"Doğru yerdeyim. Güvende…"

Liderini de bulmuştu artık,
Onunla yol alıyor,
Onunla uykuya dalıp tekrar uyanıyor,
Onunla aydınlanıyordu.
İçinde hayat vardı ama,
Bir hayatı yoktu. Olsun bu da ona yeterdi.

Ama bilmediği bir şey vardı,
O da bir zamanlar güneşti.
Şimdi liderim dediği,
Kölesi olduğu varlığın bir parçasıydı.
Onun kadar güçlü ve parlaktı…

Nasıl olup da unutmuştu geçmişini,
Nasıl olup da korkuyla kaplanmıştı,
Nasıl olup da hayallerinden bir bir vazgeçmişti…
Bunun cevabını o da bilmiyordu.


TT.

7 Ekim 2008 Salı

Yalnızlığa Alışmalı...

Bavulları hep toplu durmalı insanın...
Bir gün telefonların hiç çalmayabileceği hesaplanmalı...
Tül perde arkasından misafir yolu gözlemekten vaz­geçmeli...
İhanetlere, terkedilmelere, bir başına bırakılmalara hazırlıklı olmalı...
Yalnızlığa alışmalı...

Çünkü "omuz omuza" günlerin vakti geçti. Dayanışma... günümüz borsasının değer kaybeden hisse senet­lerinden biri artık...
Bireyin keşif çağı, geride kı­rık dökük yalnızlıklar bıraktı.
Terörün bile bireyselleştiği çağdayız. Zaman, birlikten kuvvet doğurma zamanı değil; zaman, tek başına dimdik ayakta kalabilmeyi becerme zamanıdır.

İşte o yüzden alışmalı yalnızlığa...
Sokaklar dolusu ıssızlıkla başbaşa yaşamayı göze almalı insan... Güvendiği dağlardaki karlara bakıp ders çıkarmalı... Hüzünlü bir şarkıyla paylaşı­lan gecelerde başım dayayacak bir omuz arama huylarından vazgeçmeli... Sofrada tek tabağa, tabakta az yemeğe alışmalı...
Romanlardan yalnızlığı yücelten paragraflar asmalı evin en görünür duvarlarına...
"Yalnızlık paylaşılmaz/ Paylaşmılsa yalnızlık olmaz" dizeleriyle başlamalı güne...
Telesekretere "şu anda size cevap verebilecek kimse yok" denmeli, "... belki de hiçbir zaman olmayacak..."
Cevapsızlığa, sessizliğe ısınmalı...

Oysa sessizlik haksızlığa alkıştır.
Haklılığın onuru yaşatır insanı... Susmanın utancı öldürür.
O yüzden en sessiz gecelerde "doğruydu, yaptım"la teselli bulmalı insan...
Feryada komşuların yetişmemesine, soğuk duvar diplerinde sessizce ağlaşmaya alışmalı... Kendiyle hesaplaşmaya çalışmalı...
Gece yastıkla ağlaşmaya, sabah aynayla gülüşmeye, kendiyle hüzünlenip, kendiyle keyiflenmeye hazır olmalı...
Hep başını alıp gidebilecek kadar cesur, ama hep kalıp savaşacakmış kadar gözüpek olabilmeli...
Sessizliği, sese dönüştürebilmeli...

Ve sırt çantasını her daim hazır tutmalı insan...
Yollarla barışmalı...
Yalnızlığa alışmalı...

Can Dündar

15 Eylül 2008 Pazartesi

Bardağın yarısı boş mu? Dökün gitsin...

Geçmiş zamanda, her şeye olumsuz bakan, sürekli şikayet eden, bardağın hep boş tarafını gören bir öğrenci varmış. Bilge ona her zaman olumlu olana odaklanmasını, pozitif düşünmesini söyler, ama hiç dinletemezmiş.
Bir gün bilge onu yanına çağırmış. Bu defa söylemek yerine eline bir bardak alıp yarıya kadar suyla doldurmuş ve "Ne görüyorsun?" diye sormuş.

Öğrenci onun böyle yapmasından nefret edermiş. "Her zaman aynı şeyleri söylüyor ihtiyar bunak." diye düşünmüş ve bir daha söylemesin diye bardaktaki suyu dökmüş ve yere ters çevirip koymuş. Ardından "Artık tamamı boş bir bardak görüyorum." diye sinirli bir şekilde cevap vermiş.

Bunun üzerine bilge gülümsemiş ve coşkuyla "Mükemmel!" diye bağırmış.

Öğrenci olduğu yerde durmuş şaşkın şaşkın bakarken, bilge "Artık onu istediğin şeyle doldurabilirsin." diye devam etmiş ve bardağı düz çevirip çay ile doldurmuş.

Sonra da gülümseyerek şöyle demiş: "Görüyorsun, eğer içinde su varken çay doldursaydım, içindeki şey ne su ne de çay tadı verecekti."

Bazen bardağın dolu tarafını görmek de yetmez. Bir çıkış yolu bulamadığınızda, her şeyi bırakıp sıfırdan başlamak daha anlamlı olabilir.

TT.

21 Ağustos 2008 Perşembe

Olasılıksız

Biraz geç kalmış olsa da size okuduğum bu kitap hakkındaki düşüncelerimi açıklamak istedim. Okuduğum diğer kitaplar hakkında yazmak için vakit ayırmayı da düşünüyorum.

Olasılıksız...
Evet olasılıksız. Okuduktan sonra dediğim tek söz buydu. Böyle bir kitabın yazılabilmiş olması OLASILIKSIZ. Adam Fawer bunu başarmış.

Kitap Next adlı film gibi geleceği görebilen bir adamın yeteneklerinin üzerine yazılmış bir kitap.
Olasılıksız bulmamın sebebi ise, normal bir seyirde okurken, birden olay o kadar çok farklı bir noktaya geliyor ki, sizin dediğiniz ilk şey "Nası yani yaaaa?" oluyor. Ve geri dönüp sayfaları karıştırmaya hikayenin bu hale nasıl geldiğini anlamaya çalışıyorsunuz.

Olasılıksız hakkında söyleyeceklerim şimdilik bunlar. En kısa zamanda yazarın sonraki kitabı olan Empati'yi de okumayı düşünüyorum.

10 Temmuz 2008 Perşembe

Kral ve Eşleri

Bir zamanlar, büyük ve güçlü bir ülkeyi yöneten kralın 4 eşi varmış.

Kral en çok dördüncü eşini severmiş, bir dediğini iki etmez, her şeyin en güzelini en iyisini ona verirmiş.

Kral üçüncü eşini de çok severmiş. Bu güzelliğin bir gün kendisini terk edebileceğinden korktuğu için, onu çok kıskanır, üzerine titrermiş.

İkinci eşini de severmiş kral. Kendisine karşı her zaman iyi ve sabırlı davranan eşi, kralın ne zaman bir derdi olsa daima onun yanında bulunur sorunun çözümünde ona destek verirmiş.

Kraliçe olan birinci eşiymiş kralın. Onu en çok seven, karşılık beklemeden seven, sağlığına ve hükümranlığına en büyük katkıyı sağlayan bu eşi olmasına rağmen, kral birinci eşini sevmezmiş ve onunla hiç ilgilenmezmiş.

Bir gün kral ölümcül bir hastalığa yakalanmış. Yakında öleceğini anladığı ve öldükten sonra yapayalnız kalmaktan çok korktuğu için, eşlerinden hangisin ölüm yalnızlığını kendisi ile paylaşmak isteyebileceğini öğrenmek istemiş.

25 Mayıs 2008 Pazar

Tersten Yaşamak Lazım Hayatı

Yaşamın en tatsız tarafı sona eriş şeklidir. Şüphesiz ki yaşamı tersten yaşamak daha güzel hatta mükemmel olurdu.

Nasıl mı?

Cami’de uyanıyorsunuz. Bir tahta sandık içersinde, herkes karşınızda saf durmuş, iyiliğinize dua ediyor ve tüm haklar helal edilmiş vaziyette.

Tabuttan doğruluyorsunuz, yaşlı, olgun ve ağırbaşlı olarak. Herkes etrafınızda, artık vakti gelmişti diyorlar, büyük bir itibar, iltifatlar, çocuklar, torunlar hepsi hazır.

Arabanıza kurulup evinize gidiyorsunuz. Doğar doğmaz devlet size maaş bağlıyor, aylık veya üç ayda bir maaşınızı alıyorsunuz. Ne güzel, hazır maaş, hazır ev…

Altmışlı yaşlara kadar her şey garanti, huzur içinde yaşıyorsunuz. Sağlığınız gittikçe düzeliyor. Kaslar güçleniyor, kuvvetleniyorsunuz.

Bir gün çalışmak istiyorsunuz ve işe ilk başladığınız gün size hoş geldin hediyesi olarak bir plaket ve altın kol saati veriyor patronunuz..

Ve Genel Müdürlük veya bunun gibi yüksek bir makamdan tecrübeli bir insan olarak işe başlıyorsunuz. Herkes karşınızda elpençe divan.

Vücudunuzda da bazı hoşa giden hareketler de başlıyor. Gittikçe zayıflıyor forma giriyorsunuz. Diğer hormonal aktiviteler artıyor, fevkalade… Aman ne güzel günler başlıyor…

Derken bir gün patron size artık üniversiteye gitsen daha iyi olur diyor. Bu arada babanız ortaya çıkmış, “fazla çalıştın” diyor “artık eve dön, işi bırak, okumaya başla, harçlığın benden olsun…”

Keyfe bakar mısınız?

Okuduğunuz dersler gittikçe kolaylaşıyor. Ekmek elden su gölden bir dönem başlıyor. Partiler, diskotekler, kızların sayısı artıyor.

Derken anne ve babanız sizi götürüp getirmeye başlıyor, araba kullanma derdi de yok artık…

Günün birinde sizi okuldan da alıyorlar, “evde otur, keyfine bak, oyuncaklarınla oyna” diyorlar…

Mamanız ağzınıza veriliyor, zaman zaman altınızı bile temizliyorlar, hatta bu durum alışkanlık yaratıyor ve hiç tuvalet kullanmamaya başlıyorsunuz.

Derken anneniz bir gün size süt verme kararını alıyor ve başka bir keyifli dönem başlıyor. Mama artık her yerde, her an ve en taze şeklinde hazır.

Bir gün karanlık ılık ve sıcak bir ortama giriyorsunuz. Beslenmek için ağzınızı açmaya dahi gerek yok, bir kordondan besleniyor sıcacık yumuşacık gürültüsüz ve patırtısız bir ortamda yaşıyorsunuz.

Küçülüyor, küçülüyor, ufacık bir hücre halini alıyorsunuz.

Ve günün birinde müthiş keyifli bir orgazm ile hayatınız bitiyor.


Can Yücel

Can Dündar'dan

Henüz 18 ini yeni bitirmiştin, enerji ve umutla dolu hayata başlamaya hazırdın…

Ne oldu?

İstemediğin bir okula girdin.

İnsanları mutlu etmek, saygı kazanmak, sevilmek için…

Sevmediğin bir bölümde senelerini harcadın…

Ayaklarını sürüye sürüye gittin derslere…

Çalışmak istemedin ama yine de zorladın kendini…

Güç bela bitirdin sonunda…

Ne ailen, ne de arkadaşların görmedi yaptığın fedakarlığı…

Alkışlamadılar seni, omuzlarının üzerine çıkarmadılar, madalya takmadılar…

Enerjin çoktan tükenmeye başladı bile…

Kimse bilmez nasıl kendini feda ettiğini…

Ruhunu teslim ettiğini…

Gençliğini tükettiğini…

Şimdi iş bulman gerek…

Para kazanman, araba alman, ev alman gerek…

19 Mart 2008 Çarşamba

SQL Server Express 2005'te 4GB Denemesi

SQL Server Express'de geçenlerde 4 GB sınırını test ettim. Bir deneme veritabanı oluşturp nchar(50) veritipinde 25 sütunu olan bir tablo oluşturdum. Ve bu tabloya T-SQL döngüsüyle tam olarak 1571906 adet veri kaydettim. Bu kadar veriyi bir kerede kaydetmek mümkün değil tabiki. Veritabanının sınırları 4 GB'yi bulunca

"Could not allocate space for object 'dbo.denemeTablo' in database 'deneme' because the 'PRIMARY' filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup."

hatasını veriyor. Ve "Shrink Database" komutuyla veritabanını sıkıştırıp tekrar ekleme yaptım. Bu işlemi birkaç kez yaptıktan sonra kayıt sayısı en son buna ulaştı.

SQL Server Express'deki diğer kısıtları buradan öğrenebilirsiniz.
Related Posts Plugin for WordPress, Blogger...