24 Aralık 2014 Çarşamba

C# ile VeriTabanına Resim Kaydetme

Merhaba arkadaşlar,veritabanına resim kaydetme işleminden konuşuyor olacağız. Öncelikle visual studio tarafında forma ihtiyacımız vardır.

Yandaki gibi bir form tasarlarsak içerisine 1 tane picturebox, openfiledialog ve 2 tane button ekliyoruz. Picturebox nesnesinin eklenen resmi tam olarak göstermesi için sizemode özelliğini StrecthImage olarak düzenleyelim.


Ekle buttonuna tıklandığı zaman openfiledialog devreye girip dosyayı kaydedeceğimiz kısım açılır. Buttonun altında bu denetimleri yapıyor olmamız gerekecektir.


Öncelikle veritabanımıza bağlanmak için veritabanını oluşturalım. İlgili kolonları ve tiplerini belirtmemiz gerekecektir.


Bir veritabanı ekleyelim. İsmi resimDB olsun. Sonra bir tane table ekleyip hangi kolonlardan oluşacağını belirtmemiz gerekecektir. id ve resim kolonları olsun. Bu kolonların tipleri sırasıyla int ve image tipinden olsun. Bu table yapısını Kullanicilar isminde kaydedelim.

Veritabanı işlemlerini yaptıktan sonra şimdi yapmamız gereken bu iki programı bağlamak olacaktır. Bunun için öncelikle bağlantı nesnemizi oluşturmamız gerekecek. Diğer metotlar üzerinden de erişilebilmesi için metotların dışına bağlantı nesnesini tanımlayalım.






Ekle buttonunun altına aşağıdaki kodları yazmamız gerekecektir.










openFileDialog penceresi açıldığında başlığında Resim Aç yazıyor olacak. openfiledialog.filter=burada ise hangi tipten dosyaların kaydedileceğini seçeriz. Eğer buradan Ok butonu seçilirse picturebox kısmında burada seçilen resmin görünmesini sağlayacağız.

Resmi veritabanına kaydetme kısmında ise şunları yapıyor olmamız gerekecektir.


Bağlantı nesnemizi oluştururken data source=. dediğimiz kısım üzerinde çalıştığımızbilgisayarı ifade etmektedir. database=resimDB oluşturmuş olduğumuz veritabanının adını göstermektedir.




















Ve son aşamada programı test edelim.

Ekle buttonuna tıkladığımızda resim eklememiz için Resim Aç başlığı ile penceremiz açıldı. Resimi seçip Open tuşuna basarsak picturebox tarafında resim görünüyor olacaktır.







Yan tarafta görüldüğü üzere picturebox tarafında resim eklendi. Şimdi Kaydet buttonuna tıklayıp kaydetme kısmına bakalım.










Kaydet buttonuna tıklayalım.

Program bize mesaj verdi. Veritabanına kayıt yapıldı şeklinde belirtti. Şimdi de veritabanına gidip kaydetmiş mi diye kontrol edelim.







Veritabanından kontrol edersek resmi veritabanına kaydetmiş olduk.





Bir sonraki makalede görüşmek üzere...
İyi Çalışmalar. Kolay Gelsin.

3 Aralık 2014 Çarşamba

Appinventor Projesinde Farklı Ekranlara Geçiş

Merhaba arkadaşlar, appinventor ile uygulama geliştirirken ekranlar arası geçiş hakkında yazıyor olacağım. Öncelikle başlangıç ekranına bir tane button koyalım ve buttona tıklandığında yeni bir ekran açılsın. Bunu için öncelikle bir screen ekleyelim.













Uygulamaya screen eklemek için yukarıdaki menüden Add Screen kısmını seçmemiz gerekecektir. Daha sonra name kısmını belirleyip OK dersek uygulamaya bir tane ekran eklenecektir. Hangi ekrana geçmek istersek Screen1 yazan combobox yapısını tıklayıp oluşturmuş olduğumuz yeni sayfayı görebiliriz.

Daha sonrasında Screen1 bölümüne buton koyalım ve buton koyduktan sonra sağ üst köşeden blocks kısmına geçerek kodları oluşturmaya başlayalım. Buttona tıklandığında bir işin gerçekleşmesini istiyoruz ve bu iş yeni bir ekrana geçiş yapmaktır.






Eklemiş olduğumuz button nesnesi clicklendiği zaman yeni bir ekran açmasını istiyoruz. Diğer programlama dillerindeki metotları düşünerek bu kısmı anlamamız daha kolay olacaktır. Open another screen kısmını metot olarak düşünelim ve bu metodun çalışması için parametre olarak string ifade alması gerekir. Alacağı parametre ise az önce yeni eklemiş olduğumuz screen nesnesinin name bilgisin olmalıdır. Ekranın name bilgisini parametre olarak verirsek işlem tamamlanmış olacaktır.

Kolay gelsin arkadaşlar. Bir sonraki makalede görüşmek dileğiyle...

26 Kasım 2014 Çarşamba

Appinventor ile Tanışma

Merhaba arkadaşlar, google tarafından çıkartılmış olan appinventor hakkındaki bilgilerimi sizlerle paylaşıyor olacağım. Appinventor uygulaması aracılığıyla android cihazlarınız için mobil uygulamalar geliştirmenize yardımcı olacaktır.
Appinventor ile uygulama yazmak için ihtiyacınız olan bir gmail hesabıdır.

İlgili siteye gitmek için tıklayınız.

Siteye giriş yapıp kendi projelerinizi sistem üzerinde oluşturabilirsiniz. Böylelikle projelerinize online olarak ulaşma şansınız da olacaktır.

Mail adresinizle giriş yaptığınız zaman aşağıdaki gibi bir ekran sizi karşılıyor olacaktır.










Daha önceden yapmış olduğunuz projeleriniz varsa ekranda bu projeler listelenecektir. Projects menüsünün altından yeni bir proje oluşturabilir, eski projelerinizi açabilirsiniz. Daha önceden başkalarının yapmış olduğu projeleri kendi projenize dahil edip başkalarının kodlarını inceleyebilirsiniz. Projelerinizi kaydetme işlemini de yine aynı başlık altından gerçekleştirebilirsiniz.



Yeni bir proje oluşturalım ve  projemizin adını HelloWorld olarak düzenleyelim. Tasarımını yapalım ve sonrasında kodlama blockları üzerine konuşalım.

Projenin iki tane sekmesi bulunmaktadır ve biz bu sekmeleri sağ üst köşeden görebiliriz. Bunlar Designer ve Blocks sekmeleridir.



Projenin Designer kısmında ekran görüntüsü kısmının tasarımı gerçekleştirilebilir. Sol tarafta bulunan Palette bölümünden istediğimiz nesneleri sürükleyip bırakarak projelerimize dahil  edebiliriz.



Screen kısmına bir tane button,bir tane label sürükleyip bırakalım ve buttona tıklandığında ekranda Hello World yazıyor olalım.




Sayfanın tasarım kısmını bitirdikten sonra kodlamaları yapmak için şimdi de block kısmına geçelim.
Blocks tarafında adeta yapboz oynar gibi kodlama işlemini gerçekleştiriyor olacağız.
Buttona tıklandığında label textinin değişmesini istiyoruz. O zaman buttonun clicklenmesini denetlemek için sol taraftan button clicks parçasını sayfaya getirelim.


Buttonun üstüne bir kere tıklarsak when button1.click kısmını sürükleyip sayfamıza bırakalım. Tıklandığında ne olmasını istiyorsak onu belirtmemiz gerekecektir.
Bunun için label nesnesinin text özelliğini seçelim. Bu özelliği sürükleyip buttonun tıklanması olayına bağlayalım.







Tıklanma esnasında text kısmında ne göreceksem bunu text olarak yazdırayım. label nesnesi üzerinden text kısmına tıklarsak string ifadeyi yazarız.


Text içerisine HelloWorld yazalım ve projemiz artık hazırdır. En son aşamada programı varsa bir android cihazla eğer yoksa emulator kullanarak kodumuzu test edebiliriz.





Bütün işlemlerin sonunda aşağıdaki gibi bir ekran görüntüsünü blocks sekmesi tarafında oluşturmamız gerekmektedir.


Artık test edebiliriz. Bir sonraki makalede görüşmek üzere hoşçakalınız :)
Emülator kurulumu için tıklayınız .




















9 Kasım 2014 Pazar

Quick Sort Algoritma Karmaşıklığı

Merhaba Arkadaşlar, hızlı sıralama algoritması olarak adlandırılan Quick Sort Algoritmalarının karmaşıklığı hakkında bilgi veriyor olacağım.
Öncelikle elimizde bir dizi olsun.






Dizi elemanlarının içinden öncelikle bir pivot eleman seçeriz. Bu seçtiğimiz pivot diğerleriyle karşılaştıracağımız bir eleman olacaktır. Pivot elemanını istediğimiz yerden seçebiliriz. Ben pivot eleman olarak en sağda bulunan 5 elemanını seçiyorum. Seçilmiş olan pivot elemanı ortaya alalım ve bu pivot elemana göre küçük olanlar sol tarafa yazılır. Büyük olan elemanlar ise pivot elemanın sağ tarafına yazılır. 








Aynı algoritma bölünmüş gruplar için tekrar yapılır. Bölünmüş gruplar için tekrar pivot eleman seçilir ve işlemler tekrar yapılır.








Pivot elemanı ortaya alalım ve pivot elemana göre göre tekrar tekrar sıralama işlemi yapalım.




Her bir grup için sıralama işlemi yaptıktan sonra hepsini birleştiririz. Soldan sağa doğru yazdığımız zaman bütün elemanlar sıralanmış olur.

Algoritmanın Karmaşıklığı
Her satırdaki her elemena bakar eğer n tane sayı varsa n tane sayıya bakıyor olacağız.Algoritmanın adım sayısı  dersek logn tanedir. Buradaki log iki tabanında demektir. Problem her seferinde 2 parçaya bölünür.100 sayı var diye düşünelim log iki tabanında 100 sayısını yukarı yuvarlama işlemi sonucunda 7 elde edilir. Buradan çıkaracağımız sonuç algoritmanın sıralanması 7 adımda gerçekleşmektedir.

Algoritmanın performansı iyi bir durumda nlogn'dir. 
Her zaman nlogn ile karşılaşmayız. Tesadüfen bütün elemanlar pivottan küçük olsun böyle bir durumda biz elemnları iki parçaya bölemeyiz. En sondaki pivotu bırakıp hem bir solundaki elemanı pivot seçeriz. Böyle bir durumda n-1 tane sayı olacaktır. Yeni dizi için yeniden pivot seçeriz ve bu işlemleri tekrar tekrar yapmak zorunda kalırız.
Bu durumda algoritmanın en kötü durum karmaşıklığı n^2 olur. Genel olarak Quick Sort algoritmasında ise ortalama durum nlogn'dir.


14 Eylül 2014 Pazar

Asp.Net 4.5 Framework RequiredFieldValidator Kontrolü Kullanımı

Asp.Net 4.5 Framework ile Visual Studio ortamında yeni bir web projesi açıp RequiredFieldValidator kontrolünü kullanmak için yapmamız gerekenleri konuşalım.
Öncelikle yeni bir ASP.Net Web Application projemizi oluşturuyoruz. Projemize bir adet Web Form ekleyelim. Web formun adını default olarak verelim.


















Projenin üzerine sağ tıklayıp Manage Nuget Packages seçeneğinden Jquery ve Jquery Validation kütüphanesini ekliyoruz.
Bu kütüphaneleri eklediğimiz zaman Scripts isimli klasörün içerisinde bilgileri bizim için ekleyecektir.























Projemize yeni bir Global Application Class ekleriz.
















Ve eklemiş olduğumuz Global Application Class içerisinde bulunan Application_Start isimli metod içerisine aşağıdaki gibi kodları ekleriz.

Projeye daha önceden eklediğimiz adı default olan form içerisine textbox, RequiredFieldValidator ve button kontrollerini ekleyelim.
RequiredFieldValidator kontrolüne ControlToValidate="TextBox1" kodunu eklemeliyiz. Bu tarafta denetim yapmasını istediğimiz kontrolü vermemiz gerekmektedir. Hata olması durumunda kullanıcıya göstermek istediğimiz mesajı ErrorMessage kısmına yazalım.

Sonuç olarak default isimli web sayfasının son hali aşağıdaki gibi olur:

















Eğer işlemleri yaparsanız boş geçilemeyen bir textbox alanı eklemiş olacaksınız. :)

21 Ağustos 2014 Perşembe

Excel'den SQL'e Veri Import Etme-2

Merhaba Arkadaşlar, bugünkü makalemizde Excel'den SQL'e veri taşırken birçoğumuzun karşılaşmış olabileceği bir hatadan bahsediyor olacağım.

Önceki makalelerden de hatırlayacağınız üzere eğer ki Excel tarafından SQL'e bir veri taşıma durumumuz varsa Excel'in elimizde hazır olması gerekiyor. Eğer ki mevcut Excel'in uzantısına bakamıyorsanız öncelikle buna nasıl bakabileceğinize bakalım. Mevcut Excel sayfasına sağ tıklıyoruz ve  özellikler kısmından dosya uzantısını görmemiz mümkün olacaktır. Bu aşamadan sonra import etmek istediğimiz Excel Dosya'sını SQL tarafında import ederken bu tarafta dikkat etmemiz gereken ufak bir ayrıntı söz konusu olacak. Task altında bulunan import seçeneğini seçtiğimiz zaman aşağıdaki gibi bir pencere geliyordu hatırlarsanız.






















.xlsx uzantılı dosyamızı import ederken bir hata alıyorsak bu hatanın kaynağı versiyon uyuşmazlığından dolayı olacaktır. Bu aşamada Excel dosyamızı Farklı Kaydet diyerek Microsoft Excel  97-2003 olarak kaydedip SQL tarafında da Excel versiyonunu düzgün bir şekilde belirtirsek herhangi bir sıkıntı olmayacaktır.





















Buradan Excel 97-2003 seçeneğini seçtik ve artık elimizdeki Excel versiyonu şimdi SQL tarafında import işlemi esnasında bu versiyonu belirtelim. Tasks altında bulunan import data seçeneğine tıklıyorum ve versiyonunu Excel 97-2003 olarak seçiyoruz.






















Başarılı bir şekilde import işlemini gerçekleştirmiş olduk.

6 Ağustos 2014 Çarşamba

Excel'den SQL'e Tablo Taşıma

Merhaba Arkadaşlar.
Bu makalemizde Excel'deki tablolarımızı  SQL Management Studio ortamına aktaracağız.
Öncelikle Excel tarafında tablolarımızı oluşturalım.






















Ogrenci,bolum ve fakulte isimlerinde tablolar oluşturdum. Şimdi bunu SQL tarafına aktarmaya geldi. Öncelikle SQL Management Studio programını açıp bağlanalım. Ardından Excel tarafındaki tabloları aktarmak için yeni bir veritabanı oluşturalım.























Okul isminde veritabanı oluşturdum ve şimdi bu veritabanına sağ tıklayarak tasks başlığından import data seçeneğini seçiyorum. Açılan pencerede bilginin kaynağını istiyor olacak.






















Data source kısmında Excel belirtip hatta daha önceden kaydettiğim Excel Tablolarım isimli çalışma sayfamızın yolunu gösterelim.






















Destination yani hedef kısmına nereye taşımak istiyorsak seçmemiz gerekmektedir. Server Name isminide belirtelim. Ardından bu tabloların hangi veritabanına kaydedilmesini istiyorsak seçmemiz ve next tuşuna basarak devam etmemiz gerekmektedir.Biz daha önceden oluşturduğumuz okul veritabanına bu tabloların kaydedilmesini istediğimiz için okul seçili olarak kalsın ve next diyerek devam edelim.






















Copy data from one or more tables or views seçeneğini seçelim . Verilerin biryerden kopyalanmasını getirilmesini istediğimiz için bu seçeneği seçmemiz bizim için yeterli olacaktır.























Excel tarafından aktarmak istediğimiz tabloları seçerek SQL Management Studio tarafında o tabloları görmemiz mümkün olacaktır. Hepsini seçelim. Tekrar next tuşuna basıp devam edersek. Başarılı olarak Excel tablolarının SQL Management Studio'ya taşındığını görebiliriz.

















Hatta tablolara sağ tıklayıp Edit top 200 rows dersek içerisindeki kayıtları da görüyor olacağız.




5 Ağustos 2014 Salı

SQL Veritabanındaki Kayıtları Excel Programına Aktarma

Merhaba Arkadaşlar.
Öncelikle SQL Server'da bulunan tabloların excel ortamına aktarılması hakkında bilgi vereceğim. SQL Server Management Studio'a bağlanalım öncelikle.








Bağlandıktan sonra veritabanlarını görüyor olacağız. Daha önceden oluşturmuş olduğum Universite ismindeki veritabanında bulunan ogrenci ve ders isimlerindeki tabloları excel tarafına tablo olarak aktarılmasını istiyorum. Bunun için universite isimli veritabanın üzerine gelip sağ tıklıyorum.Ardından Tasks seçeneğinden export data seçeneğini seçiyorum.
























Aşağıdaki gibi bir pencere açılacaktır. Bize açılan pencereden data source ve server name kısımlarını belirtiyoruz. Excel tarafına aktarmak istediğimiz veritabanını seçiyoruz ve ardından next diyerek devam ediyoruz.




























Ardından yeni gelen penceremizde
veritabanımızın tablolarını hedef olarak nereye taşımak istiyorsak destination kısmında belirtiyoruz. İlgili dosyanın kaydetmek istediğimiz excel belgesinin yolunu belirtiyoruz. Bunun için önce masaüstüne bir excel belgesi ekleyelim ismi Tablolarım olsun. Ardından bu açmış olduğumuz Tablolarım ismindeki excel belgesinin yolunu belirtelim ve excel versiyonunu belirttikten sonra next diyerek devam edebiliriz.




























Sonrasında yapmak istediğimiz seçeneği seçip işleme devam ediyoruz. Ben veritabanından tabloları excele taşımak istediğim için copy data from one or more tables seçeneğini seçiyorum.




























Bu işlemlerden sonra tekrar next dediğimiz zaman bize veritabanından taşınacak olan tabloları getirir.Yeni pencerede gösterir. Bu aşamada hangi tabloların taşınacağını görebilirim.


























Eklemek istediğim tabloları seçip next diyerek devam ediyorum. Gelen yeni pencerede Run immediately seçeneğini seçiyorum ve işlemlerin başarıyla yapıldığını pencerede gösteriyor.



























Ardından daha önceden oluşturmuş olduğumuz Tablolarım ismindeki excele gidersem veritabanı tarafında oluşturduğum tabloları excel tarafında da görüyor olacağız.




























10 Haziran 2014 Salı

Unity'de Animasyon Yapımı

 Merhaba arkadaşlar, bir önceki makalemizde Terrain üzerine iki adet Cube eklemiştik. Bunların renk bilgilerini değiştirmiştik. Şimdi bunlara animasyon eklemenin nasıl olduğuna bakalım. İkinci Cube biraz büyülterek aşağıdaki gibi bir görüntü elde edelim.






















Şimdi ilk Cube'un ikinci Cube seviyesine gelip ardından tekrar aşağıya inmesini animation ile gerçekleştireceğiz. Animation özelliği eklemek istediğimiz nesne seçiliyken Window menüsünden Animation seçeneğini seçiyoruz.





















 Karşımıza Animation penceresi açılacaktır. Bu pencereyi alt kısımda görmek için Project sekmesinin  üzerindeyken sağ tıklayıp Animation penceresini alt kısıma geniş bir şekilde alabiliriz. Daha geniş pencere ile çalışacağımız için bu sayede takip kolaylaşacaktır. Animation sekmesinin saniyeler kısmında farenin ortadaki tuşuyla geri gelerek saniyeleri görebiliriz. Bu kısımda ilk olarak başlangıç saniyesinde Cube nerede dursun bunu belirleyip 0.saniyeye atamamız gerekir. Bu işlemleri yapmadan önce kırmızı butona tıklayalım ki yaptıklarımız kaydedilsin. Animation ismini vermemizi istedi. Biz ismine yukselmeAnimation diyelim.

















Şimdi geldik her saniyede hangi konumda durması bilgisini tanımlamaya. Bunun için önce Animation üzerindeki kırmızı uzun düz çizgiyi saniye bilgisine getiriyoruz. Ardından nesnenin o saniyede nerede durmasını istiyorsak orayı belirliyoruz. Biz yukarı çıkmasını istediğimiz için 5.saniyede Cube'u yukarı pozisyona getirdik.
10.saniyede tekrar aşağı gelmesini istediğimiz için başlangıç konumlarını 10.saniyeye kopyalıyoruz. Şimdi 15.saniyede tekrar yukarıda yer almasını istediğimiz için 5.saniyedeki konum bilgilerini 15.saniyeye ekliyoruz. Ve animasyonumuz aşağıdaki gibi oluyor.



SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...