12 Oca 2007 Microsoft Data Access Application Block Kategori: ADO.NET Etiketler: ADO.NETMicrosoft 1 Yorum Merhaba arkadaşlar bu makalemizde Microsoftun geliştirmiş olduğu Microsoft Data Access Application Block üzerinde duracağız. Giris .Net Framework, veritabanı ile çalısmak için yazılım gelistiricelere ADO.NET'i sundu. ADO.NET bize veriyi görüntülemek ve veri üzerinde islemler yapmamızı saglar. Veritabnındaki bazı bilgilere erismek ve uygulama üzerinde bazı parametreleri kullanabilecegini göz önünde bulunduralım. Bu islemi 6-7 satır kod yazarak kolayca yapabiliriz. Fakat, 5-6 satır kodu tekrar tekrar yazmak zorunda kaldıgımızda bu islemi yapmak kolay olmayacaktır. Microsoft bunun için, Daha az kod ile ortak isleri yapmak için kullanılabilen Data Access Application Block'u gelistirdi. Data Access Application Block'u asagıdaki adresten indirebilirsiniz. http://msdn2.microsoft.com/en-us/library/ms954827.aspx Microsoft .net Data Access Application Block Nasıl Kullanılır ? Ilk olarak Data Access Application Block Version 2.0.(Daha eski/yeni versionda olabilir) indirip kuralım. Ilk olarak the Microsoft .net Data Access Application Block projesi için .dll dosyası olusturacagız. Projeyi build ettikten sonra kendi projemize basitçe ekleyebiliriz. Kendi projemize ekledikten sonra bin klasörü içindeki .dll dosyasınıda build edelim. Data Access Application Block olmadan Dataya Erismek Ilk olarak Application olmadan veriye nasıl erisildigine bakacagız. Asagıda veritabanına 2 parametre ekleyen basit bir örnek yapacagız. string connectionString = (string) ConfigurationSettings.AppSettings["ConnectionString"]; SqlConnection connection = new SqlConnection(connectionString); SqlCommand command = new SqlCommand("INSERT_MUSTERI",connection); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(new SqlParameter("@Name",SqlDbType.NVarChar,50)); command.Parameters["@Name"].Value = txtName.Text; command.Parameters.Add(new SqlParameter("@Surname",SqlDbType.NVarChar,10)); command.Parameters["@Surname "].Value = txt Surname.Text; connection.Open(); command.ExecuteNonQuery(); connection.Close(); Görüldügü gibi veritabanına parametre eklemeye çalıstıgımızda 6-7 satır kod ile isimizi tamamladık. Fakat 10 yada daha fazla parametre eklemeye çalıstıgımızda gelistirme zamanı bir hayli uzayacaktı. Simdi aynı islemi Microsoft .net Data Access Application Block kullanarak yapalım. using Microsoft.ApplicationBlocks.Data; SqlHelper.ExecuteNonQuery(connection,"INSERT_MUSTERI",new SqlParameter("@Name",txtName.Text) ,new SqlParameter("@Surname",txt Surname.Text) ); Gördügünüz gibi 5-6 satır kod yazmak yerine isimizi tek satırda tamamladık. Bu islemi SqlHelper classı ile yaptıgımız gördük. Peki bu SqlHelper nereden çıktı? Projemizin namespacelerine Microsoft.ApplicationBlocks.Data eklersek SqlHelper Classına erisebiliriz. SqlHelper Classı veritabanına erismek için static metodlar içeren ve Microsoft tarafından gelistirilen bir classdır. Her hangi bir text editörü ile SqlHelper Classını açabilir ve inceleyebilirsiniz. SqlHelper Class SqlHelper'in içindeki static metodlar; ExecuteNonQuery ExecuteDataSet ExecuteReader ExecuteScalar ExecuteXMLReader Evet artık örnegimize geçebiliriz. Ilk olarak bir Windows Application açalım. Simdi SqlHelper Classını projemize ekleyelim. (DLL olarak da ekleyebiliriz). Simdi projemizin namespacelerine ApplicationBlocks.Datayı ekleyelim. using Microsoft.ApplicationBlocks.Data; Ekledikten sonra formumuzun üzerine 1 adet buton ve bir gridview ekleyelim. Evet Simdi ExecuteDataseti çalıstıracak kodları yazalım. string sqlstring = "Select * from Musteriler"; dataGridView1.DataSource = SqlHelpera.ExecuteDataset("Data Source=localhost; Initial Catalog=SemGoksuDB; trusted_connection=yes", CommandType.Text, sqlstring).Tables[0]; Simdi projeemizi çalıstıralım. Projemizi çalıstırdıktan sonra kayıtlarımızı listeledik. Gördügünüz gibi çok kolay bir sekilde 1-2 satır ile isimizi yaptık. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz semgoksu@semgoksu.com Kaynaklar http://msdn.microsoft.com
12 Oca 2007 Visaul Studio ile CommandLine(CMD) Aracını Çalıştırmak Kategori: .NET Framework Etiketler: C#.NET Framework 5 Yorum Merhaba arkadaşlar bu makalemizde Visaul Studio içerisinde commandline aracının nasıl çalıştırıldığına bakacağız.GirisWindows uygulamaları içinde Dos Command Line aracı üzerinde yapabildigimiz herseyi yapabiliriz. Windows formaları içerisine bi takım kodlar ekleyerek CommandLine aracını kullanmak oldukça basitdir. Bu kodları System.Diagnostics NameSpace'i içerisindeki Process classının altında bulabiliriz.System.DiagnosticsProcess Class Local Sistem processlerini baslatmak ve durdurmamamıza, remote processlere ve locale erismemize izin veren bir classtır. Kullanımı asagıdaki gibidir.VBPublic Class Process Inherits ComponentDim instance As ProcessC#Public Class Process: ComponentProcess instance;Process, PC üzerinde çalısarak bir processe erismeyi saglar. Bir Process belirli zamanlarda bir uygulamayı çalıstırır. Process görüntüleme ve kontrol uygulamalarını baslatmak ve durdurmak için çok kullanıslıdır. Process componenetini kullanarak yeni bir process baslatabilir yada çalıstırılacak processlerin listesini belirleyebilirsiniz. Evet arkadaslar Projemizde kullanacagımız namespace ve sınıfımızı tanıdıktan sonra örnegimize geçelim.ÖrnekÖrnek uygulamamızda Command Line aracındaki gibi komutları yazıp çalıstıracagız. Örnek vermek gerekirse Ipconfig yazıp ip bilgimizi, ping 127.0.0.1 yazıp kendi makinamızı pinglememizi, notepad yazıp Notepad'i çalıstıracagız(Simdilik aklıma gelenler bunlar).Bu açıklamalardan sonra Visual Studio üzerinde bir windows uygulaması açalım. Projemizi olusturduktan sonra formumuza, 1 Button ve 2 de textbox ekleyelim. 1. Textbox'a cmd üzerinde yazdıgımız komutları yazacagız ve 2. textboxda da sonucu ekrana yazdıracagız. Evet yukarıdada belirttigim gibi butona tıkladıgımızda CMD'deki gibi komutumuz çalıstırılacak. Simdi bu söylediklerimizi koda dökelim.C#private void btnRun_Click(object sender, EventArgs e){System.Diagnostics.Process p = new System.Diagnostics.Process();//process’in instancesini aldıkp.StartInfo.FileName = "cmd";//Çalıstırılacak filep.StartInfo.Arguments = "/c " + textBox1.Text;//file içerisine gönderilecek argumentsp.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;//Komut çalıstıgında Cmd penceresinin açılmasını engelledikp.StartInfo.CreateNoWindow = true;//Pencere Açılmasını engellerp.StartInfo.RedirectStandardOutput = true;p.StartInfo.UseShellExecute = false;p.Start();//process Çalıstırılırstring output = p.StandardOutput.ReadToEnd();//Çalısan Processin sonucutextBox2.Text = output;//Sonuç textboxa yazılır}VB#Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.ClickDim p As New System.Diagnostics.Process()p.StartInfo.FileName = "cmd"p.StartInfo.Arguments = "/c " + textBox1.Textp.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hiddenp.StartInfo.CreateNoWindow = Truep.StartInfo.RedirectStandardOutput = Truep.StartInfo.UseShellExecute = Falsep.Start()Dim output As String = p.StandardOutput.ReadToEnd()textBox2.Text = outputEnd SubEvet kodumuzu yazdık ve artık deneyebiliriz. Ipconfig yazdık ve sonucumuzu bizim arayüzümüze verdi. Baska bir komut deneyelim. Kendimizi pingleyelim.Son olarak Hesap makinasınıda çalıstıralım : )Evet gördügümüz gibi basarılı bir sekilde vs.net içerisinde cmd de yaptıgımız tüm islemleri yaptık.Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim.Sem GÖKSUMCP | MCAD.NET | MCTSÖrnek Kodlar için mail adresimi kullanabilirsinizsemgoksu@semgoksu.comKaynaklarhttp://msdn.microsoft.com
21 Ara 2006 SQL Server IDENTITY Değerini Bulmak Kategori: Yazılım Etiketler: SQL Server 3 Yorum INSERT islemi esnasında tablonuza ekleme yaparken o andaki IDENTITY özelligine sahip alanınızın degerini asagıdaki gibi bulabilirsiniz: INSERT INTO Tablo_Adi (Alan_Adlari) VALUES (Eklenecek_Degerler) SELECT @@IDENTITY AS 'Identity' IDENT_CURRENT('Tablo_Adi') : Belirli bir tabloda herhangi bir oturum yada geçerlilik alanında en son Identity degerini döndürür. Örnek: SELECT IDENT_CURRENT('Personel') @@IDENTITY : Herhangi bir tabloda o anki bir oturum yada tüm geçerlilik alanlarında en son Identity degerini döndürür. Örnek: SELECT @@IDENTITY SCOPE_IDENTITY() : Herhangi bir tabloda o anki oturum yada o anki geçerlilik alanında en son Identity degerini döndürür. Örnek: SELECT SCOPE_IDENTITY()
17 Ara 2006 C# Settings(Ayarlar) Dosyasının Kullanımı Kategori: C#.NET Etiketler: C#C# 2.0 0 Yorum Merhaba arkadaşlar bu makalemizde C# içerisinde Settings dosyalarının nasıl kullanıldığına göz atacağız.Giris .Net FrameWork 2.0 oturum ve uygulama arasında kalan degerlere erismemize ve yeni degerler olusturmamıza izin verir. Bu degerler "Settings" olarak adlandırılır. Settings dosyası kullanımına ihtiyaç duyulan uygulama bilgilerini yada kullanıcı ayarlarını temsil eder. Örnegin; uygulamanın renk seması için kullanıcı ayarlarını saklayan ayarları olusturabiliriz. Yada uygulamada kullanılan bir database'e belirlenen bir ConnectionString''i saklayabilirsin. Settings(Ayarlar) kullanıcıların ayarlarını saklayan profilleri olusturmamıza ve kodun uygulama dısında olan bilgilerine erismemize izin verir. Uygulama Ve Kullanıcı Ayarları Settings'lerin 4 adet özelligi vardır; 1. Name: Çalısma Zamanında ayarın degerine erismek için kullanılan addır.2. Type: Ayarları temsil eden .Net Framework tipidir. Kullanıcı ayarlarını saklar.3. Scope: Çalısma zamanında ayarlara nasıl erisilecegini temsil eden özelliktir.4. Value: Ayarlara erisildiginde geriye döndürülecek olan degerdir. Yeni Bir Settings Dosyası Olusturmak için; 1. Projemiz üzerinde sag tıklayıp, Add New Item 2. Settings Dosyasını seçeriz ve projemize ekleriz. Settings dosyasını projemize ekledik, görünüm olarak biraz inceleyelim; Yukarıda da belirttigimiz gibi Settings dosyalarının 4 adet özelligi var. Name, Type, Scope, Value. Artık örnegimize geçelim ve olusturdugumuz Settings dosyasını kullanalım. Örnek Örnegimizde northwind database'ne baglanıp connection string'i Settings dosyası içerisinden çagıracagız. Formumuzun baslıgını, arka plan rengini ve font adını settings doyası içerisinden alacagız. Formumuzun üzerine bir adet grid ekleyelim. Bu grid içerisinde Categories Tablosundaki kayıtları listeleyecegiz. Simdi Kayıtlarımızı listeleyecek kodları yazalım. 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 SettingsFile { public partial class Form1 : Form { public Form1() { InitializeComponent(); } SqlConnection Cnn; SqlDataAdapter Dadp; DataSet Dset; private void Form1_Load(object sender, EventArgs e) { Cnn = new SqlConnection(sem.Default.ConnectionString.ToString()); // ConnectionString Degerini Settings dosyası içerisinden çagırdık. Dadp = new SqlDataAdapter("Select * from Categories",Cnn); Dset = new DataSet(); Dadp.Fill(Dset, "table"); dataGridView1.DataSource=Dset.Tables[0]; } } } ConnectionString'i settings dosyası içerisinden kullandık. Simdi Form baslıgımızı, form backgroundunu ve gridimizin font ayarını settings dosyasından yapalım this.Text = sem.Default.FormBaslıgı.ToString(); this.BackColor = sem.Default.ArkaPlanRengi; this.Font = sem.Default.FormFondu; Evet tüm ayarlarımızı settings dosyası içerisinden ayarladık. Görüldügü gibi form baslıgı, background rengi ve font family settings dosyası içerisinde belirledigimiz degerelere göre geldi.Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://msdn.com
17 Ara 2006 *.BAT Dosyası İle SQL Server Üzerinde Veritabanı Oluşturma Kategori: SQL Server Etiketler: SQL ServerSQL Server 2005SQL Server 2008 2 Yorum Merhaba arkadaşlar bu makalemizde SQL Server üzerinde bat dosyası aracılığı ile veritabanı oluşturma işleminin nasıl yapıldığına bakacağız.Kendi kisisel bilgisayarımızda ya da firma bilgisayarları üzerinde tasarladıgımız veritabanını müsteri ya da talep edilen noktaya tasırken bir takım sıkıntılar yasarız. Çünkü veritabanını tasırken olusturmus oldugumuz index yapılarını, store procedure, trigger vb. gibi bilgileri kaybedebiliriz. Eger ki birden çok noktaya kurulum yapılması gerekiyorsa bu sıkıntılar daha da artar. Tek nokta için olusturulan veritabanının backup'ını alarak sorunu biraz olsun çözülebilir ama eger birden çok noktaya kurulum yapılıyorsa bu da çözüm olmaz. Çünkü kullanıcı program CD'ni takıp ve setup dosyasını çalıstırıp bir an önce programını kurup kullanmak ister. Bu sıkıntıları gidermek için olusturdugumuz veritabanının script dosyalarını çalıstıracak bir Bat dosyası hazırlayabiliriz. Bu BAT dosyasını da hazırlamıs oldugumuz uygulamada ön-kurulum olarak kurdurarak tasarladıgımız veritabanını istedigimiz noktaya kolayca tasıyabiliriz. Konu ile ilgili örnek bir uygulama yapalım. QueryAnalyser Üzerinde bir DataBase ve bu database'e baglı tablolar olusturalım. Daha sonra script dosyalarını çalıstıracak BAT dosyasını hazırlayalım. Örnek Bunun için ilk olarak Query Analyser ya da SQL SMO açalım. Örnek bir veritabanı olusturalım ve olusturacagımız bu scripti kaydedelim. (CreateDatabase.sql ) Simdi bu tabloya ait Tablolarımızı olusturalım ve yine kaydelim.(CreateTable.sql ) Script Dosyalarını olusturdugumuz dosyanın içine gelip uzantısı BAT olan bir dosya yaratalım. Olusturdugumuz bu doya üzerinde sag tıklayarak düzenle diyerek Notepad da açalım. Içerisine asagıdaki kodları yazalım. echo off cls // Ekranı Temizle type start.txt // Baslangıç için Ekrana verilecek Mesaj pause > Kurulum.log // Kullanıcının devam etmesi için beklet osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls // Ekranı Temizle type End.txt // Sonuç için Ekrana verilecek Mesaj pause >> Kurulum.log // Kullanıcının devam etmesi için beklet Del Kurulum.log // Hata vermemisse log dosyasını sil Yukarıda bahsettigimiz start.txt yani baslangıç mesajı için Bat dosyasını olusturdugumuz yerde Start.txt isimli bir dosya yaratalım ve içerisine Baslangıç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulumu Baslatmak icin bir tusa basiniz! ***** ********************************************************* **************** Sem Goksu ************************** ********************************************************* ********************************************************* ****** Yine script dosyamız görevini tamamladıktan sonra kullanıcıyı bilgilendirmek için bat dosyasını olusturdugumuz yere end.txt adında bir dosya olusturalım ve sonuç için bir mesaj yazalım. Benim örnegim asagıdadır. ****** ********************************************************* ***** Kurulum Tamamlandi, Tebrikler! ***** ********************************************************* ****** Bunları yaptıktan sonra Kur.Bat dosyamızı çalıstıralım ve dosyamızı test edelim. Dedigini yapalım ve bir tusa basalım :=) Veritabanımızın olusturuldugunu söylüyor. Birde SQL Serveri açalım ve oradan kontrol edelim. Gördügümüz gibi Veritabanımız olusturulmus. Eger ki bu yaptıklarımızı bir programa ön kurulum olarak kurduracaksak Bat dosyamızı asagıdaki gibi degistirebiliriz. echo off cls osql -E -S%1 -n -iCreateDatabase.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar osql -E -S%1 -n -iCreateTable.sql>>Kurulum.log //Scripti çalıstırır ve sonucunu kurulum.log dosyasına yazar cls Bu sekil de kurulum asamasında hiçbir uyarı vermez ve veritabanı kurulur. Bu makalenin de sonuna geldik, baska bir makalede görüsmek üzere basarı ve iyi günler dilerim. Sem GÖKSU MCP | MCAD.NET | MCTS Örnek Kodlar için mail adresimi kullanabilirsiniz askisem@hotmail.com Kaynaklar http://msdn.com