11 Aralık 2009 Cuma

Jquery Visual Studio 2008 Intellisense

Visual Studio 2008 de Jquery için Intellisense kazandırmak mümkün.

1.Adım : Visual Studio 2008 Service pack 1 kur
2.Adım :Intellisense Destek Dosyasını Kur (VS 2008 Patch KB958502 ) Ayrıntılı bilgi
3.Adım :jQuery-vsdoc.js file Dosyasını indir



jquery-vsdoc.js ve  jquery.js dosyalarını pronize ekeyin.




8 Aralık 2009 Salı

T-SQL Haftanın gününü veren fonksiyon

MS SQL üzerinde haftanın gününü veren fonksiyona ihtiyaç duyanlar için ;

CREATE FUNCTION [dbo].[udf_DayOfWeek](@dtDate DATETIME)
RETURNS VARCHAR(10)

AS
BEGIN
DECLARE @rtDayofWeek VARCHAR(10)
SELECT @rtDayofWeek = CASE DATEPART(weekday,@dtDate)
WHEN 1 THEN 'Sunday'
WHEN 2 THEN 'Monday'
WHEN 3 THEN 'Tuesday'
WHEN 4 THEN 'Wednesday'
WHEN 5 THEN 'Thursday'
WHEN 6 THEN 'Friday'
WHEN 7 THEN 'Saturday'
END
RETURN (@rtDayofWeek)
END

fonksiyonun kullanımı ise şöyle ;
SET @dayname =dbo.udf_DayOfWeek(GETDATE())

datatime tarih ve saat yerdeğiştirmesi

Yakın bir zamanda çok farklı bir seneryoyla karşılaştım ve çözümümü paylaşmak istedim seneryo şöyle ; Microsoft SQL Server üzerindeki bir tabloda
VallTime , VallDate isimli  iki sutun vardı ve değerleri  2009-11-09 12:23:00.000  ve
2009-10-09 10:12:10.000  olan verilerin birinin tarih bilgisiyle diğerinin saat bilgisini alarak datetime biçiminde birleştirmekti. özetle ;
2009-11-09 12:23:00.000     +   2009-10-09 10:12:10.000   = 2009-10-09 12:23:00.000

birleştirmek için gerekli olan T-SQL

CREATE FUNCTION [dbo].[COMBINE_DTM]
(
@inDATE_DTM AS datetime,
@inTIME_DTM AS datetime
)
RETURNS datetime
AS
BEGIN
RETURN
CAST((ROUND(CAST(@inDATE_DTM AS float), 0, 1)) AS float) +
(CAST(@inTIME_DTM AS float) - (ROUND(CAST(@inTIME_DTM AS float), 0, 1)) + .00000001)
END
 
Bu Scaler-Valued fonksiyonun kullanımı ise şöyle ;
 
declare @calltime datetime , @calldate datetime , @Combinedatetime datetime
select @calldate = CallDate,@calltime = CallTime from tbJobs where JobID = @JobID and deleted = 0;

set @Combinedatetime= dbo.COMBINE_DTM(@calldate,@calltime)

7 Aralık 2009 Pazartesi

MSSQL Cursor Kullanımı

Cursor çekitiğimiz sorgu içerisinde satır satır dönerek işlemlerimizi yapmamızı sağlayan bir yapıdır.
Altaki örnek de kullanıcıların mail adresleri ile ilgili tabloya tek tek mail gönderilmesi sağlanmakta.
önce işlem yapacağımız veritabanını oluşturalım.
GO
CREATE TABLE EmailList
 (
id smallint identity(1,1),
email varchar(500),
name nvarchar(500),
emailsent bit default 0,
sentdate datetime
)

sonra veri girişi yapalım
INSERT INTO EmailList (email, name) VALUES ('emailaddress1@test.com', N'Darth Vader')
INSERT INTO EmailList (email, name) VALUES ('emailaddress2@test.com', N'Bill Gates')
INSERT INTO EmailList (email, name) VALUES ('emailaddress3@test.com', N'Katy Perry')

daha sonra procedure yazalım .
CREATE PROC SendEmailCursor


AS


-- eMail Variables --
DECLARE @email_subject nvarchar(1000)
DECLARE @email_body nvarchar(max)


SET @email_body = N'Welcome to our Community'
SET @email_body = N'Dear {0},
We''re glad to see you.'
-- eMail Variables (END) --


-- Cursor Variables --
DECLARE @Id smallint;
DECLARE @email varchar(500);
DECLARE @name nvarchar(500);
-- Cursor Variables (END) --


DECLARE @pbody nvarchar(max)


------------------ CURSOR eMail --------------------
DECLARE eMailCursor CURSOR FAST_FORWARD FOR
SELECT
id, email, name
FROM EmailList
WHERE emailsent = 0


OPEN eMailCursor


FETCH NEXT FROM eMailCursor INTO @Id, @email, @name


WHILE @@FETCH_STATUS = 0
BEGIN
---
SET @pbody = REPLACE(@email_body, '{0}', @name)


EXEC msdb.dbo.sp_send_dbmail
@profile_name = N'TBS',
@recipients = @email,
@subject = @email_subject,
@body = @pbody,
@body_format = 'HTML'


UPDATE EmailList SET emailsent = 1, sentdate = GetDate() WHERE id = @Id
---
FETCH NEXT FROM eMailCursor INTO @Id, @email, @name
END


CLOSE eMailCursor
DEALLOCATE eMailCursor
------------------ CURSOR eMail (END) --------------------


GO


ve çalıştıralım

EXEC SendEmailCursor


Cursor ile ilgili bilgi;
FETCH FIRST komutu ile ilk satıra dönüp FETCH LAST komutu ile de son satıra gidebiliriz. SQL SERVER en son işletilen FETCH komutunun durumunu @@FETCH_STATUS degişkeninde tutar. FETCH komutu başarılı ise 0, başarısız ise -1, FETCH edilen satır bulanmıyorsa da -2 döner.

5 Aralık 2009 Cumartesi

Windows Grup Polikalarını değiştirmek

windows grup politikalarını değiştirmek için gerekli komut gpedit.msc

Flash diskler için otomatik çalışmayı kapatmak Stop Autorun

Bildiğimiz gibi bir çok virus flash disk gibi harici disklerin kapatılmasıyla bilgisayarımıza sızıyor.flash disk takıldığı anda virus aktifleşiyor.Otomatik başlatı kapatmamız gerekli HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer altındaki NoDriveTypeAutoRun değerini 0xFF çekilmesiyle yapabiliriz.
ayrıca diğer ayarlar için alttaki tablo incelenebilir.

0x1
Disables Autoplay on drives of unknown type.

0x4
Disables Autoplay on removable drives.

0x8
Disables Autoplay on fixed drives.

0x10
Disables Autoplay on network drives.

0x20
Disables Autoplay on CD-ROM drives.

0x40
Disables Autoplay on RAM drives.

0x80
Disables Autoplay on drives of unknown type.

0xFF
Disables Autoplay on all types of drives.

19 Kasım 2009 Perşembe

50 Amazing Jquery Examples- 50 Jquery Örneği

Bu linki paylaşmadan edemeyecektim.
Link her biri birinden muhteşem Jquery örnekleri mevcut.
Link

Windows'un yeni olan bir ürününü kullanıp da  sorunsuz olarak, arkama yaslanarak kullandığımı nerede ise hatırlamam.
Windows 7 çıkmış vista gibi belleğe tecavüz etmediği söylediler sevindik.XP gibi her şeyi destekleyecek dediler eski teknolojiler desteklemedi.Eyvallah dedik Sonra Windows 7 üzerine çok az zahmetle sanal windows XP kurulabiliyor dediler onada sevindik ve hemen kurduk ama oda nesi hemen bir hata :(
verilen hata şöyle ;
windows virtual pc donanım yardımlı sanallaştırma gerektirir.sistemde donanım yardımlı bir sanallaştırma desteği yok.
Hatanın nedeni benim yeni aldığım bilgisayarın işlemcisin sanallaştırma desteği yokmuş.
http://ark.intel.com/Product.aspx?id=37251 asdresinde Intel® Virtualization Technology koçaman NO yazmışlar.(Arkadaşım.... işlemcinin böyle bir desteği yoksa niye bana 500 MB indirtiyorsun hadi indirtdin niye kurduruyorsun.Hadi Kurdurdun niye çalışmıyorsun. ilginç ya !)

Bende çözüm olarak ne yapacağım. Hemen gidip sanallaştırılmış windows XP makinamdan kaldırıp.Yerine canavar gibi VMWARE kuracağım.

18 Kasım 2009 Çarşamba

Click Once güncelleştirme sonrası eski dosyaları siler mi ?

Bu konuyu oldukca merak etmekteydim.Acaba Clickonce güncelleştirmeleri sürekli bilgisayarımızda depolatıyor mu? yoksa eskisini sil yenisini kur şeklinde bir yapımı izliyor bunun için basit bir deney yaptım.Önce Programın boyutuna baktım ve güncelleştirme sonrasındaki boyutu ile karşılaştırdım.Nerede ise boyutları Aynı.....



Click Once Dosyaları Nereye Kaydeder

Merhabalar bu yazıda ClickOnce ile ilgili küçük bir deneyimimi paylaşmak istiyorum.
ClickOnce bir yayın hazırladığınızda eğer ki The Application is Avaliable Online As Well seçeneği seçtiğinizde Başlat altına bir kısayol atacaktır ve bu kısayol sayesinde programı çalıştırabileceksiniz.Peki OnceClick kısayolu hangi yolu açıyor.bunu öğrenmek için sakın kısayol sağ tuşla tıklayıp uygulama yolunu size vereceğini düşünmeyin. :) Yolu almak için yayınladığım exe dosyası üzerine Environment.CurrentDirectory diğerek bize çalıştığı yolu vermesini sağlayabiliriz.
Yol şu şekilde oluyor:
C:\Documents and Settings\Kullanıcı\Local Settings\Apps\2.0\AQ60BXPJ.3XC\VTKRXTPY.6KR
yoldan da anlaşılacağı üzere kırmızı ile yazılan kısım sabit olarak geliyor.geriye kalan yolları ise clickonce kendisi rasgele üretiyor.

iyi çalışmalar

Merge Deyimi

Merge Deyimi:
SQL Server 2008 ile gelen diğer bir yenilik olan Merge deyimi ile duruma göre insert veya update yapabiliyoruz. Yani prosedürümüz içerisinde Merge ve Matched deyimlerini kullanarak kaydı bulabiliyorsak güncelleme bulamıyorsak kayıt ekleme yapabiliyoruz. Merge deyimi için aşağıdaki örneği inceleyebilirsiniz.

MERGE INTO StokHareket h
USING Stok s ON s.StokID = h.StokID
WHEN MATCHED THEN UPDATE SET h.Adet = s.Adet
WHEN NOT MATCHED THEN INSERT (StokID, Adet)
VALUES (s.StokID, s.Adet)

2 Kasım 2009 Pazartesi

sql iki sutunu birleştirmek

sql de iki tabloyu birleştirmek çoğu zaman gerekli bir işlem.ve birleştirme + operatoruyle yapılıyor.fakat iki tipde int ya sayısal olarak tanımlı ise ozaman birleştirme işlemi yeri + toplama olarak kullanılıyor bu nedenle sutunların tipini metinse bir şeye dönüştürmek oldukca iyi bir iş olur.
Not: str fonksiyonuda kullanılabilir.

select CAST(Year AS nvarchar) +'--' + CAST(Age AS nvarchar) AS 'ColCombined' from tbJobs

1 Kasım 2009 Pazar

Crimsonland Bitirdim


50.Bölüm sonunda adada kan gövdeyi götürürken bir resim. :)
Crimsonland oyunu bilmeyenler için öncelikle oyun ile ilgili biraz bahsedeyim.
indirebilirsiniz. Oyun demo olarak indirildiği için ilk 10 bölüm açlıyor.Ama demo olsada direnme ve nişanlama bölümleride sınırsız olarak oynanıyor.Amaç bir adadasınız.Ve yaratıklar size tecavüz etmek istiyor :) Sizde onlara kuru sıkıyla direniyorsunuz.Daha sonrada yaratıkları öldürdüğünüzde inanılmaz silahlar çıkıyor ve yaratık tecavüzünden paçayı yırtmış olarak yeni bir bölüme giriyorsunuz.
Benim bitirdiğim bölümler ise 50 bölüm ve 40 dan sonraki her bölüm bir diğerinden daha zor.

30 Ekim 2009 Cuma

Java Veritabanı işlemleri I

Java da veritabanı işlemlerine başlamadan önce kendinize bir ODBC Kaynağı oluşturmak oldukca akıllıca olacak böylece connection stringlerle uğraşmadan güzelce veri kaynağımıza bağlanabiliriz. ODBC Kaynağı oluşturmak için Denetim Masası > Veri Kaynakları (ODBC) girerek yayınlama yapmak istediğiniz veritabanı ayarlarını kolayca yapabilirsiniz.Bu Örnekde ben MS SQL Server 2005 üzerine NorthWind veritabanınıyapılandırarak deneme adını verdim.

Bu Örnekler sadece Where parametresi olmadan yapılan sorgular için. Bir Sonraki Bölümde Where Parametresi ile sorgulama işlemlerine geçeceğim.

----------------- BAĞLANMA ÖRNEĞİ---------------------------------------
package bağlantıtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Main
{
public static void main(String[] args)throws SQLException,ClassNotFoundException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection baglanti = DriverManager.getConnection("jdbc:odbc:deneme");
System.out.println("Bağlantıya Erişildi.");
}
catch(SQLException ex)
{
System.out.println("oppppsssss !..." + ex.getMessage().toString() );
}
}
}

----------------------------------UPDATE ORNEGI------------------------------------------
package insert_update_delete_parametresiz;
import java.sql.*;
public class Main {

public static void main(String[] args) throws ClassNotFoundException,SQLException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection baglanti = DriverManager.getConnection("jdbc:odbc:deneme");
//statement -SQL COMMAND .net gibi
Statement sorgu =baglanti.createStatement();
sorgu.executeUpdate("Insert Into Shippers(CompanyName,Phone) Values ('deneme','11111')");
sorgu.close();
System.out.println("başarılı Update ");
}
catch(Exception ex)
{
System.out.println("opsssss");
}

}
}
--------------------- SELECT IŞLEMI --------------------------------

package selectparametresiz;
import java.sql.*;
public class Main {
public static void main(String[] args) throws ClassNotFoundException,SQLException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection baglanti = DriverManager.getConnection("jdbc:odbc:deneme");
//statement -SQL COMMAND .net gibi
Statement sorgu =baglanti.createStatement();
ResultSet resultum = sorgu.executeQuery("Select ShipperID,Companyname,Phone from Shippers");
while(resultum.next())
{
System.out.println(resultum.getInt("ShipperID"));
}

sorgu.close();
System.out.println("başarılı Update ");
}
catch(Exception ex)
{
System.out.println("opsssss");
}
}
}
--------- SELECT SONUCU GELEN SUTUNU COMBOBOXA DOLDURMA ORNEGI -------
//COMBOBOX OLUŞTURAN KODLAR BURADA DEĞIL
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection baglanti = DriverManager.getConnection("jdbc:odbc:deneme");
//statement -SQL COMMAND .net gibi
Statement sorgu =baglanti.createStatement();
ResultSet resultum = sorgu.executeQuery("Select ShipperID,Companyname,Phone from Shippers");
while(resultum.next())
{
String deneme = resultum.getString("ShipperID");
jComboBox1.addItem(deneme);
}
sorgu.close();
System.out.println("başarılı Update ");
}
catch(Exception ex)
{
System.out.println("opsssss" + ex.toString());
}

}

C# dosya oluşturmak

C#dosya oluşturma işlemi ile ilgili güzel bir kod bloğu.Ayrıca işlem kapandığı için
dosya üzerinde değişiklikde yapabilirsiniz.

FileInfo fi = new FileInfo(@"F:\Myprogram.txt");
FileStream fstr = fi.Create();
Console.WriteLine("Creation Time: {0}",f.CreationTime);
Console.WriteLine("Full Name: {0}",f.FullName);
Console.WriteLine("FileAttributes: {0}",f.Attributes.ToString());
//Way to delete Myprogram.txt file.
Console.WriteLine("Press any key to delete the file");
Console.Read();
fstr.Close();
fi.Delete();

26 Ekim 2009 Pazartesi

Yazı-2

Gökten kırmızılar yağdığı ve gözlerinin önünde zamanın eriyip gittiği bir vakitde insanın ince sızılarından bir sızısı yardım eder ; Şöyle der yeter sadece arkana bak ve harcağın zamana acı işte bu ses aklın vızıltısını dindirir. Sonrasında ise sadece yağmurun sesini duyarsın ve kırmızılığın yağmurdan değil gözlerinin ağlamaktan kırmızı gördüğü anlarsın.
İşte zamanın kendi içinde dürülüp de sıkıştığı ve ilermemek için inat edercesine seni bir boğduğu bir zamanda ,sessizliğin sesini dinlemenin ne kadar hoş olduğunu gör. Sadece gözlerini kapatıp zamanın ilerlemesi için dua et. Çünkü O topların yıkamadığı surları sessizce yıkmış ,Orduların öldüremediği insanları mezarlarında bile usulca eritmiştir.
Bu gücün sana neler yapacağını O nu yaratandan başka kim bilir ki. O zaman yeniden dua et; ilerleyen zamanın içinde boğulmamak ve sana acımasızca davranılmaması için.

Yazı-1

Kır çiçekleriyle örülü dünyamızı yakıp kavuran insanlar ,bize medeniyet teklif ediyorlar, aman ne güzel.Onların oyuna daldıkları cenettleri,sessizce kırlara uzanıp mavi gökyüzünü izlemekten daha güzel olabilir mi ? Gök gürültüleri arasında, insanlar ...yağmur beklerken, bomba yağdıranlar hiç yokluğun azabını tadacaklarını düşünmediler mi ?Aman ne güzel çaresizlere çare diye zehir sunmak ve bununla övünmek

22 Ekim 2009 Perşembe

Adım Marsa Gidiyor


http://mars.jpl.nasa.gov/
adresinden girerek adınızı marsa bir microchip içinde gönderiyorlar.Etkiliğe katıldığınızda size bir numara ve bir de belge veriyorlar.

Şimdiye kadar hiç bana böyle güzel bir sertifika veren olmamıştı.Çok mutlu oldum.,

19 Ekim 2009 Pazartesi

MSSQL Transaction Orneği

Güzel bir Transaction örneği buldum ;

CREATE PROCEDURE addTitle(@title_id VARCHAR(6), @au_id VARCHAR(11),
@title VARCHAR(20), @title_type CHAR(12))
AS

BEGIN TRAN
INSERT titles(title_id, title, type)
VALUES (@title_id, @title, @title_type)

IF (@@ERROR <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END

INSERT titleauthor(au_id, title_id)
VALUES (@au_id, @title_id)

IF (@@ERROR <> 0) BEGIN
PRINT 'Unexpected error occurred!'
ROLLBACK TRAN
RETURN 1
END

COMMIT TRAN

RETURN 0

12 Ekim 2009 Pazartesi

C# parametreli exe yapmak

Bir süredir parametreli exe yaparak gönderdiğim parametrelere göre programın çalışma akışı değiştirmek istiyordum (mesela başka bir veritabanına bağlanmak gibi).

Program.cs doysasında şöyle güzel bir kodla isteiğimi yaptım.


static void Main(string[] DatabaseType)
{
if (DatabaseType.Length != 0)
{
if (DatabaseType[0].Trim() == "")
intlogin = 1;
else if (DatabaseType[0].Trim() == "-Product" DatabaseType[0].Trim() == "-product" DatabaseType[0].Trim() == "-p" DatabaseType[0].Trim() == "-P")
intlogin = 1;
else if (DatabaseType[0].Trim() == "-Test" DatabaseType[0].Trim() == "-test" DatabaseType[0].Trim() == "-t" DatabaseType[0].Trim() == "-T")
intlogin = 2;
else
intlogin = 1;
}
else
intlogin = 1;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}



intlogin isimli bir değişkeni exedeki parametreye göre farklı şekillerde doldurarak daha sonra intlogin değişkenine bakarak veritabanı değiştiren bir fonksiyon yazdım.

11 Ekim 2009 Pazar

Cebit 2009

Cebit fuarının son günü, her işim gibi geç kalmış ve yapılması gereken işlerden biriside (tabiki yazılımcı olmamdan ötürü )Cebit fuarı gezmek ve yazılımla ilgili ne varsa hepsini görmekti.Bunun için Tuyap Fuar Merkezine gitmek gerekti.
(Cebit fuarına ulaşım oldukca kolay metrobusten avcılara gittiniz mi oradan kime sorasanız TUYAP Fuar merkezini giden IETT otobuslerini gösterecektir size).
ilk 3 salon kurumsal müşteriler için ayrılmıştı diğer salonlar ise ziyaretciler için ayrılmıştı.ilk olarak 4. salondan başladım turlamaya, fuar hediyelik torba dağıtmaya dönmüştü adeta. Ben biraz ARGE ürünü bir şeyler olacağını düşünüyordum.Yok ingilizce kursları yok kitapcılar yok dergiler yok arabalar bilmem ne... Teknoloj fuarından çok alelade bir fuar görünümü verdi .5 ve diğer salonları gezdikten sonra kurumsal ziyaretciler için olan 3. salona gittim.İşte burası.. Bir çok yazılım firmasının bin bir el emeği göz nuru ile yaptıkları yazılımları ,insanı hayrette bırakan teknolojik ürünleri gördüm.Kısacı Cebit kurumsal alanlarda olmasa Kobi fuarına dönmüştü.
Cebit'de dolaştığım ve sorduğum sorulara özel bir ilgi ve itina ile cevaplar veren kurumlara teşekkur ediyorum.Bu Kurumlar;

Bekdata Teknoloji A.Ş (Mimio Akıllı Tahtaları)
Pardus Ekibi (Pardus 2009 kurulan cd için ve mono projesi hakkında aydınlatıcı bilgiler için teşekkurler)
Likya Yazılım Bilişim Ltd.Şti (Dia Stok ,Muhasebe,Finans,Personel-Pordro,Demirbaş Takip ... Yazılım hakkında ayrıntılı bilgiler verdikleri için tşk Yapılacak çokda iş bırakmayıp hepsini yapmışlar. :))
Alibaba.com (Gümrükleme ile ilgili sorduğum soruya verdikleri aydınlatıcı cevap için tşk.)
Kariyer.Net (Cv bırakınca neden geri dönmüyorlar şeklindeki espirili soruma Vay terbiyesizler şeklince espirili yanıt verdikten sonra aydınlatıcı bilgiler veren yetkiliyede teşekkurler.)

10 Ekim 2009 Cumartesi

MSSQL bir veritabanında diğer bir veritabanına tablo kopyalamak

SELECT * INTO NewTable FROM existingdb.dbo.existingtable
Sorgusu aynı veritabanında bir veritabanından diğer bir veritabanına NewTable isimli bir tablo kopyalıyor işin ilginci ise hedef tabloda NewTable olmasına gerek yok.Kendisi tabloyu oluşturacak.

30 Eylül 2009 Çarşamba

Projeyi Visual Source Safe 2005 Eklemek

Bir çok makalede source yapılandırmayı bulabilirsiniz.Zaten oldukcada kolay fakat bu source safe nasıl kodlar atılıyor yani projeyi source nasıl atarız diye kara kara düşünürken.İşte buldum :) ....


Solution proje ekle demeniz yeterli soursafe size konum soracak.

Böylece artık proje sourcesafe li

29 Eylül 2009 Salı

Sql Server DB Diagram Error

HATA MESAJI: "Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects."

Management studio açarak aşağıdaki komutu kendinize göre düzenleyip. çalıştırmanız yeterli böylece database diagramlarını kolaylıkla görebilirsiniz.


EXEC sp_dbcmptlevel 'Veritabanı_adı', '90';
go
ALTER AUTHORIZATION ON DATABASE::Veritabanı_adı TO "LoginKullanıcıAdı"
go
use [Veritabanı_adı]
go
EXECUTE AS USER = N'dbo' REVERT
go

28 Eylül 2009 Pazartesi

MS SQL Server 2008 setup

MS SQL Server 2008 Express web platform üzerinden kuruluyor öncelikle yaklaşık 90 KB bir dosyadan indirdikten sonra yüksek performanslı olarak kuruyor.Ama nereye indirdiğini ne yaptığı tabiki size söylemiyor.
Web platform olmadan Fiziksel olarak exe dosyasını indirmek içinde bir adress koymuşlar.
http://blogs.msdn.com/sqlexpress/archive/2009/06/15/installing-sql-server-2008-guidance.aspx

buradan MS Sql Server 2008 Express veriyonun exe halini indirilebilir.

24 Eylül 2009 Perşembe

String or binary data would be truncated

Update sorgusu çalıştırırken aldığım hatanın kaynağı kolayca anlaşılamıyor;
hata metninde şöyle diyor du.
String or binary data would be truncated.
The statement has been terminated.

Hatanın kaynağının en son yaptığım değişikliğe bağlı olduğunu anladım.
veri girmeye çalıştığım alan varchar(20) olarak tanımlı girmeye çalışıtığım veri çok daha uzun
veri alanını büyüterek varchar(max) yaparak ve tanımladığım sorgularımda (ya da stored procedure) tanımlı parametleride değiştirere sorun çözüldü.

Özet:String or binary data would be truncated.The statement has been terminated.
hatasını almayacağımı düşünüyorum.

kısa bir alana büyük veri giri ile ilgili hatanın giderimi çok kolay , alanı büyütmek yada gelen veriyi küçültmek

23 Eylül 2009 Çarşamba

DataGridViewCheckBoxColumn Checked Olanları Almak

Visual Studio Gridleri evrim geçire geçire bir çok muhteşem özellikle bezendi bunlardan biride sutunlardan birini checkbox lu hale getirebilme özelliği.Bu işlemi yapmak Visual Studio araçlarıyla çocuk oyuncağı fakat kullanıcının hangi rowları check ettiği anlamak çok da basit değil , bunun için öncelikle tanımladığınız DataGridViewCheckBoxColumn için Falsevalue özelliğini false , TrueValue özelliğinide true olarak atamanız yeterli.
Şimdi de C# la nasıl alınabileceğine bakalım.


ArrayList arySelectedReuestSP = new ArrayList();
foreach (DataGridViewRow dataGridRow in datagridSP.Rows)
{
if ((bool)dataGridRow.Cells["C1"].FormattedValue)
{
arySelectedReuestSP.Add(dataGridRow.Cells["C0"].Value.ToString());
}
}

18 Eylül 2009 Cuma

MS Sql Server 2005 Express Edition ve Agent

Ms Sql Server 2005 Express Edition versiyonu ücretsiz fakat ne yazık ki Mssql server agent kurulamıyor.Bir çok denemeler ve araştırmalar sonucunda Ms sql server 2008 express kurulumunda






SQL server Agent Kuruluyor Ama başlatılamıyor.Sorun bende mi neden böyle diye düşünürken microsoft connect de ki bir yazı gördüm :) .
Bu bir microsoft un pazarlama stratejisi imiş
https://connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=351806&wa=wsignin1.0
eğer Agent Kullanılmak isteniyorsa ücretli bir versiyon almak gerekliymiş .

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.

The account is disabled (Microsoft SQL Server, Error: 18470)

The account is disabled (Microsoft SQL Server, Error: 18470)

hatası aldım. sa Kullanıcı mı bir türlü kullanamıyordum.Zaten şifresini falan unutmuştum :)
bir de onun şifresini değiştirmek gerek. Onuda ayrı bir yazı olarak yazmayı düşünüyorum.

Şimdi bir kullanıcı kapatılmış bunu nasıl etkin yaparım.

ALTER LOGIN sa ENABLE;
demek yeterliymiş.

12 Ağustos 2009 Çarşamba

hata: String or binary data would be truncated.

String or binary data would be truncated.
The statement has been terminated.

Hatasıyla karşılaştım nchar(10) olarak tanımlı bir alana 30-40 karakterlik bir veri giridiğimiz için kaynaklanan bir sorun.
Bu alanı vertabanında genişletip varchar(50) olarak girmek yeterli yada en iyisi varchar(max)

10 Ağustos 2009 Pazartesi

Bir text deki bilgileri Sql ile değiştirmek (sql replace a text)

update TABLE_NAME set FIELD_NAME = replace(FIELD_NAME, ‘%find this string%’, ‘%replace found string with this string%’) where FIELD_NAME LIKE '‘%find this string%' ;

şeklinde bir sql sorgusu tüm sutundaki bilgileri dolaşarak find this string yazan tüm yeri replace found string with this string şeklinde değiştirecektir. belki % operatörünü koymada yanlış yapmış olabilirim. :)

9 Ağustos 2009 Pazar

Windows uzaktan bağlanma ( Remote Connection ) Komutları

uzaktan bağlanma yapmak için komut çalıştırma Run penceresi içerisine MSTSC yazmanız yeterli.

MSTSC.EXE, bazı parametreleri kullanarak çok kullanışlı bir hale getirilebilir.

/v:--Bağlanmak istediğimiz bilgisayar adı.
/f--bağlantıya tam ekran ile bağlanmak.
/w:--Uzak Bağlantı yapılacak ekranın Eni.
/h:--Uzak Bağlantı yapılacak ekranın boyu.
Kaltec isimli bilgisayara bağlanmak için çözünürlüğüde 640 x 480 olsun Komut :>

mstsc /v: Kaltec /w:640 /h:480

8 Ağustos 2009 Cumartesi

MSSQL Server Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.

1.Çözüm olarak
bağlantı stringi olarak

kullanmak bağlantı zamanı aşımı hatasını giderebilir.
-----------------
1.Çözüm olarak
Dim myCommand As New SqlCommand(sql, myConnection, myTrans)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.CommandTimeout = 0


buradaki 0 değeri bağlantı zaman aşım değerini Limitsiz olarak ulaşmanızı sağlar.

buda oldukca iyi bir yol.

5 Ağustos 2009 Çarşamba

C# Dosya uzantısını almak

Kullanışlı bir ip uçu daha yazalım;


OpenFileDialog diyalog = new OpenFileDialog();
diyalog.Filter = "Image files (*.bmp; *.gif; *.jpg; *.png)*.bmp; *.gif; *.jpg; *.png MS-Office Files (*.doc; *.xls; *.docx; *.xlsx)*.doc; *.xls; *.docx; *.xlsx Text (*.text; *.txt; *.rtf)*.text; *.txt; *.rtf HTML (*.html; *.htm; *.mht)*.html; *.htm; *.mht";
diyalog.DefaultExt = Directory.GetCurrentDirectory();
DialogResult result = diyalog.ShowDialog();
if (result == DialogResult.OK)
{
string strExtension = Path.GetExtension(diyalog.FileName.ToString());

}

Path.GetExtension ile yolu verilen bir dosyanın uzantısını bulmak mümkün

FileDialog Filter Örneği

File Dialog ile bir çok kereler çalışmışızdır acaba aşğıya doğru inen farklı farklı dosya tiplerini destekleyen FileDialoglar nasıl yapılabilir.


OpenFileDialog diyalog = new OpenFileDialog();
diyalog.Filter = "Image files (*.bmp; *.gif; *.jpg; *.png)*.bmp; *.gif; *.jpg; *.png MS-Office Files (*.doc; *.xls; *.docx; *.xlsx)*.doc; *.xls; *.docx; *.xlsx Text (*.text; *.txt; *.rtf)*.text; *.txt; *.rtf HTML (*.html; *.htm; *.mht)*.html; *.htm; *.mht";
diyalog.DefaultExt = Directory.GetCurrentDirectory();
DialogResult result = diyalog.ShowDialog();


kırmızı ile yazılı alana bakarsanız. burada file dialog için farklı farklı 4 farklı filtre girildiğini göreceksiniz.

yapısı ise basitce şöyle ;

Image Files(*.BMP;*.JPG;*.GIF)*.BMP;*.JPG;*.GIFAll files (*.*)*.*

3 Ağustos 2009 Pazartesi

C# bir dosyayı çalıştırmak

devexpress listboxcontrole için yazdım ve eklenen dosyanın adını alıyor çift tıklayınca olayın da bu kod çalışıyor . kırmızı ile yazdığım satır ise dosyayı çalıştırıyor.Eğer ilişkisiz bir dosya formatına çift tıklarsanız bunu yöntemek için Try Catch içine yazılması elzem.

try
{
if (lstEquipmentConfigutationList.SelectedItem != null)
{
System.Diagnostics.Process.Start(@"C:\\SMT\\CustomerEquipment\\" + l stEquipmentConfigutationList.SelectedItem.ToString());
}
}
catch (Exception exc)
{
XtraMessageBox.Show(exc.Message, "Running Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1);
return;
}

30 Temmuz 2009 Perşembe

dev express DateEdit 00:00:00 kaldırmak

Dev Express dateEdit Kullandığımda Mask olarak Short Date bile seçseniz hemen seçimden sonra tarihin yanına 00:00:00 gibi bir şey getiriyor.Nedir bu nedir diye düşünürken kaldırmak için yapılması için gerekli olan şeyi buldum.

Mask.UseMaskAsDisplayFormat özelliğini True Yapmakmış Offf Dev Express Offf :(

Float Regular Expression

Düşündüm Bir text kutusuna sadece float (kayan noktaşı) veri girişine izinvermek isteseydim.
Regular Expression ile nasıl ifade ederiz diye düşündüm şöyle olması gerekir.

[-+]?([0-9]*\.[0-9]+[0-9]+)

DateTime Null Alan Girmek

Sql de DateTime veri tipleriyle çalışmak Null yada String.Empty ("") atanamadığından biraz problem çıkartır.

diyelimki kullanıcı tarih girmemiş ve sizde doğal olarak tarih tipi girilmemişse tarih alanına bir şey yazdırma diyebilmelisiniz.

null atamayız "" atamayız ozaman
DBNull.Value atayabilirsiniz.
Peki .Net de DateTime Tipinede hiç bir şey girilmediğinde null yada "" taşımak yerine Datetime.MinValue atayarak boş gelmiş gibi düşünebilirsiniz.

yani şöyle bir şey yaptım ben


if (customerequipment.EquipmentInstallCATDate == DateTime.MinValue)
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = DBNull.Value;
else
cmd.Parameters.Add("@dEquipmentInstallCATDate", SqlDbType.DateTime).Value = customerequipment.EquipmentInstallCATDate;

dev express Message Box Ayarları

Dev Express Message Box kullanımı oldukca kolay
XtraMessageBox.Show("Delete Operation is Successful", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);

Geriye değer döndürmek ise şöyle ;


DialogResult DResult=XtraMessageBox.Show("Are You Sure Clearing Form ?", "Clear", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1);
if (DResult == DialogResult.No)
return;

29 Temmuz 2009 Çarşamba

3G de Gelmiş Aman Aman


Viki Bilgisi:Uluslararası Telekomünikasyon Birliği-2000 (International Mobile Telecommunications-2000) (IMT-2000), ya da daha bilinen adıyla 3G, 3N ya da 3. Nesil, Uluslararası Telekomünikasyon Birliği tarafından tanımlanan; GSM EDGE, UMTS, CDMA2000, DECT ve WiMAX teknolojilerini kapsayan bir standartlar ailesidir. Verilen hizmetler arasında mobil kullanıcılar için geniş-alanda kablosuz telefon görüşmeleri, görüntülü aramalar ve kablosuz veri aktarımı vardır. 2G ve 2.5G hizmetleriyle karşılaştırıldığında, 3G eşzamanlı konuşma ve veri hizmetleriyle daha yüksek veri hızlarını (HSPA+ ile iniş yolunda 14.4 Mbit/s ve çıkış yolunda 5.8 Mbit/s'e ulaşan hızları) desteklemektedir. Bu sayede 3G ağları, ağ operatörlerinin daha geniş ve gelişmiş hizmetleri, geliştirilmiş spektral verimlilik sayesinde ulaşılan daha büyük ağ kapasitesiyle sunmalarını sağlar.

Uluslararası Telekomünikasyon Birliği üçüncü nesil (3G) mobil telefon standartlarını gelişimin hızlanması, bantgenişliğinin artması ve daha geniş uygulamaların desteklenmesi için tanımladı. Örneğin, GSM (şu anki en yaygın cep telefonu standardı) sadece ses değil, aynı zamanda 14.4 kbps hızlarında devre anahtarlamalı veri aktarımını destekler; ancak çokluortam uygulamalarının desteklenmesi için 3G'de paket anahtarlamalı verilerin daha iyi spektral verimlilikte ve daha yüksek hızlarda aktarılması gerekmektedir. Paket anahtarlaması sayesinde 3G sisteminde cihazlar bant genişliğini sadece veri alışverişi sırasında işgal ederler. Özet olarak, 3G'nin 2G'ye göre getirmiş olduğu en büyük yenilik, iletimin ses yerine veri odaklı olmasıdır.


3G'nin getirmiş olduğu birçok yenilik vardır:
Mesajlaşma, internet erişimi ve yüksek hızda çoklu ortam haberleşme desteği
Gelişmiş hizmet kalitesi
Gelişmiş pil ömrü
Konumlandırma hizmetlerinin sağlanması
İşletim ve bakım kolaylığı
Multimedya ve eğlence seçenekleri ile hızlı dosya,resim,müzik aktarımları olmaktadır.
Mevcut şebekelerle birlikte çalışabilirlik, 2G’ye dolaşım sağlayabilme
Mevcut şebekelere geriye doğru uyum sağlayabilme, düşük kurulum maliyeti
Gelişmiş güvenlik yöntemleri sayesinde mobil ticarete ortam sağlayabilme
Medya haberciliği açısında çekilen video görüntülerinin en hızlı bir şekilde haber merkezine yetiştirilmesi
Son Kullanıcı açısında YouTube hesabınıza direk video gönderimi ve paylaşımı
4 saatte indirilebilen 700 MB'lık Divx filmin 1 saatte indirilebilmesi (2 mbps hız)
Görüntülü konuşmanın sağlanması.
Mobil TV izleyebilme (Kupa maçları ve diziler gibi).

28 Temmuz 2009 Salı

C# kod ile nesne oluşturma

DevExpress.XtraEditors.CheckedListBoxControl[] ArryChkEquipmentSubSystem;
yazarak en başta bir kontrol tanımladım.

daha sonra sayısının kesinleştiği kod bloguna giderek

ArryChkEquipmentSubSystem = new DevExpress.XtraEditors.CheckedListBoxControl[intCountCustomerEquipment];

şimdi nesneler oluştu bunları forma eklemeye gelelim

for (int i = 0; i < location =" new" size =" new" style="color:#330099;">ArryChkEquipmentSubSystem[i].Name = "SubSystem_" + i;
ArryChkEquipmentSubSystem[i].ItemCheck += new DevExpress.XtraEditors.Controls.ItemCheckEventHandler(ArryChkEquipmentSubSystem_ItemCheck);
}



kırmızı yazılı kodla bir olay bile bağladım :)
olayın hangi nesneden tetiklendiğini nereden alırım



private void ArryChkEquipmentSubSystem_ItemCheck(object sender, DevExpress.XtraEditors.Controls.ItemCheckEventArgs e)
{
DevExpress.XtraEditors.CheckedListBoxControl editArryChkEquipmentSubSystem = sender as DevExpress.XtraEditors.CheckedListBoxControl;
string strControlName = editArryChkEquipmentSubSystem.Name.ToString();
int intControlID = Convert.ToInt16(strControlName.Replace("SubSystem_", ""));
if (e.State == CheckState.Checked)
{
lstChkEquipmentSubSystem[intControlID].Add(e.Index);
}
if (e.State == CheckState.Unchecked)
{
lstChkEquipmentSubSystem[intControlID].Remove(e.Index);
}
}

Mavi yazılı kod ile bunu anlarım.
Not: Burada nesnelerin konumlarını aynı yazdığımız için üste üste gelerek tek bir nesne gibi görünür.

C# Dataset Bilgi Okumak

Datasetden bil okumak bilindiği gibi sorunlu bir işlem öncelikle datasetin hangi tablosundan hangi sutunu okuyacağımızı bilmeliyiz.

DataSet dsID = new DataSet();
dsID = obj.TakeCustomerEquipmentCustomerIDGetEquipmentMasterNameCustomerEquipmentID(intcustomerID);
ArrayList aryEquipmentID = new ArrayList();
foreach (DataRow dtr in dsID.Tables[0].Rows)
{
foreach (DataColumn c in dsID.Tables[0].Columns)
{
aryEquipmentID.Add(dtr[c.ColumnName]);
}
}


dataset ilk tablosunun satırlarında gezerek sutun sutun yazdırılıyor.Eğer Datasetin aldığınız sorgular birden fazla sutun içeriyorsa ArrayList giderek belli bir moddaki verileri filitre etmelisiniz. Örneğin 3 tane eğer kolumunuz varsa ve ilki ID tablosunda geliyorsa Araylist içeriği
0 ID
1
2
3 ID
4
5
6 ID
şeklinde gelen kayıtlardan oluşacak
neyseki benim TakeCustomerEquipmentCustomerIDGetEquipmentMasterNameCustomerEquipmentID güzel fonksiyonum tek bir sutundan oluşuyor.Tekrar yukarıdaki kodu filitreleme gerek yok.

23 Temmuz 2009 Perşembe

String birleştirme

C# da string birleştirme + operatörüyle
VB de ise & ile yapılma

C# da bir örnek

string strcode = "";
strcode = strcustomercode + "-" + intyear.ToString() + "-" + intCountratTotalCount + "-" + ContractType.Properties.Value.ToString();
ContractNumber.Properties.Value = strcode;

C# Tarih Farkı (Date Diff)

C# da hep datihfarkı_sontarih-ilktarih gibi bir işlemi yapmak istemişimdir.Bu işlem bukadar kolay olmasada

diffResult =dtTodayMidnight -dtTodayNoon gibi bir işlemi yapan C# kodu aşağıda var.


using System;
using System.Collections.Generic;
using System.Text;

namespace Console_DateTime
{
class Program
{
static void Main(string[] args)
{
System.DateTime dtTodayNoon = new System.DateTime(2006, 9, 13, 12, 0, 0);
System.DateTime dtTodayMidnight = new System.DateTime(2006, 9, 13, 0, 0, 0);
System.TimeSpan diffResult = dtTodayNoon.Subtract(dtYestMidnight);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.Days);
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.TotalDays);
Console.ReadLine();
}
}
}
Çıktı:

19 Temmuz 2009 Pazar

Regular Expression Nedir?

Regular Expression, veriler içinde, istediğinize göre belirleyebileceğimiz kompleks sözdizimine sahip ifadeleri bulmak için kullanılan bir tekniktir. Bu teknik bir string içinde başka bir string bulmamıza ve istersek değiştirmemize yarar. Sözdizimi oluşturmak için kullanabileceğimiz birkaç yöntem vardır:
- Karakter Uyuşması
- Tekrarlanma Uyuşması
- Pozisyon uyuşması

1. Karakter Uyuşması: Belirlediğimz karakterlerin string içinde aramamıza yarar.
Örnek:
dogma

Başka bir örnek:
d.gma

"Nokta" karakteri, Regular Expression içinde özel bir karakterdir ve herhangi bir karakter yerine geçebilir. Yani yukarıdaki ifade
dAgma dBgma d9gma dogma d0gma..
ifadelerini çağırır.

Burada "Nokta" ile her karakteri arayacağımız gibi istediğimiz karakterler içinde arama yapılmasını da sağlayabiliriz:
[1234]dogma
Sonuç:
1dogma, 2dogma, 3dogma, 4dogma

Bunu bir diziye dökecek olursak:
[1-9]dogma
Sonuç:
1dogma, 2dogma,...,8dogma, 9dogma

Tabi burada rakam yerine harf de kullanabiliriz:
[a-d]dogma
Sonuç:
adogma, bdogma, cdogma, ddogma

2. Tekrarlanma Uyuşması: Regular Expression'ın derinleme araştırma yaparak gücünü gösterdiği bölümdür.
Örneğin dogm ve dogma çıktısını istiyoruz. Bunun için başka bir özel karakter kullanmalıyız: "Soru İşareti"
dogma?

Sonuç:
dogm, dogma

Soru işareti, soru işaretinin sıfır ve bir solundaki karakterler düşürülerek araştırılır.

Peki "dogma?" veya "dogma.?" şeklinde çıktı istiyorsak ne yapmalıyız? Kelimesi kelimesine arama için özel karakterlerden hemen önce bir ters bölü işareti (\) koymalıyız.
Yani dogma\?
Sonuç sadece dogma? değerini döndürür.

Diğer bir özel karakter yıldız işaretidir (*, asteriks). Bir önceki karakterle uyuşan sonuçlar çıkarır.
Örnek:
dogma*

Sonuç:
dogma, dogmaa, dogmaaaaaaa...

Burada son harfin değil bir grubun tekrarlanmasını istiyorsanız parantez kullanabilirsiniz.
Örnek:
dog(ma)*

Sonuç:
dogma, dogmama, dogmamamama...

Burada "ma" ifadesinin tekrar sayısı sınırsızdır. İfadenin kaç kere tekrar edileceğini de sınırlayabilirsiniz.
Örnek:
do{3}gma

Sonuç:
dooogma

Kısaca özel karakterlerin anlamları: \ ( ) [ { ^ $ * + ? . < >
\ : Özel karakterleri normak karakter olarak kullanabilmemizi sağlar.
: Veya anlamına gelir: "[htf]tp:" Çıktısı http: veya ftp: olur.
( : Grup başlatır.
] : Grup sonlandırır.
[ : Diziler oluşturmamızı sağlar. [A-Z]
{ : Tekrar sayısı belirmebilmemizi sağlar.
^ : Aranan ifadenin, string içinde en başta aranmasını sağlar.
$ : Aranan ifadenin, string içinde en sonda aranmasını sağlar.
* : 0 ya da daha fazla ifadeyi string içinde arar.
+ : 1 ya da daha fazla ifadeyi string içinde arar.
? : Kendinden önceki bir ifadeyi düşürerek arama yapar.
. : Kendi bulunduğu yere herhangi bir karakter koyarak arama yapar
< : İfadenin, string içinde tam olarak geçmesini sağlar:


3. Pozisyon Uyuşması: Aranılan ifadenin string içindeki yerini de belirlememizi sağlar.
İfadenin, string içinde en başta olmasını istiyorsak başına ^ koymamız gerekir.
Örnek:
^dogma
Burada, string dogma ile başlıyorsa sonuç başarılıdır.

Eğer string içinde en sonda olmasını istiyorsak sonuna $ koymalıyız.
Örnek:
dogma$
Burada da, string dogma ile bitiyorsa sonuç başarılıdır.

Sık Kullanılan uygulamalar için bazı hazır diziler geliştirilmiştir:
\d = [0-9]
\D = [^0-9]
\w = [a-zA-Z0-9]
\W = [^a-zA-Z0-9]
\s = [ \t\n\r\f]
\S = [^ \t\n\r\f]



Artık Regular Expression konusunun temelini biliyoruz. Aşağıdaki örnekler yardımıyla kendi sözdiziminizi yazarak kendi kontrollerinizi oluşturabilirsiniz.

Telefon Numarası Doğrulama:
0(XXX)-XXX-XX-XX

Aradığımız karakterler:
Sıfır Parantez Açma 3 Adet Rakam Parantez Kapama Çizgi 3 Adet Rakam Çizgi 2 Adet Rakam Çizgi 2 Adet Rakam

Regular Expression:
0\([0-9]{3}\)-[0-9]{3}-[0-9]{2}-[0-9]{2}

Şimdi teker teker ifadeleri açıklayalım:
0 : Numarada aranan sabit karakter.
\( : Parantez açıyoruz ancak parantez özel karakter olduğundan önüne bir ters bölü işareti koyuyoruz. (Parantez, gruplama da kullanlan özel karakterdir)
[0-9]{3} : Sıfırdan dokuza kadar olan karakterler üç defa bulunacak.
\) : Parantezi kapatıyoruz. Artık başındaki ters bölüyü anlatmama gerek yok sanırım.
- : Numarada aranan sabit karakter.
[0-9]{3} : Sıfırdan dokuza kadar olan karakterler üç defa bulunacak.
- : Numarada aranan sabit karakter.
[0-9]{2} : Sıfırdan dokuza kadar olan karakterler iki defa bulunacak.
- : Numarada aranan sabit karakter.
[0-9]{2} : Sıfırdan dokuza kadar olan karakterler iki defa bulunacak.


--------------------------------------------------------------------------------


--------------------------------------------------------------------------------

Mail Adresi Kontrolü içinde şu ifadeyi kullanabilirsiniz:
[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[a-zA-Z0-9]+

C# ile Web sayfası bilgilerini almak

asp.net yada php gibi modern diller sunucuda çalışarak bilgilere üretir.üretilen bilgilerde html olarak görüntülenir.Html bilgileri almak kolaydır fakat bir asp.net kodunu sunucudan almak pratikde imkansızdır (mimari izin vermez) fakat bir web sayfasının o anki görüntüsünü alabilir.
Web sitesi üzerinde önemli işlemler yapabiliriz.
aşağıda ki kod sozluk sitesine bağlanır ve sitenin html bilgilerini bize sunar.
using System.Net;
using System.IO;

-----
string URL = "http://www.sozluk.com";
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);
myRequest.Method = "GET";
WebResponse myResponse = myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8);
string result = sr.ReadToEnd();
sr.Close();
myResponse.Close();
textBox1.Text = GetWebPageTitle("http://www.sozluk.com");

14 Temmuz 2009 Salı

INSERT INTO SELECT

Kim SQL kullanarak bir tablodaki verilerini başka tabloya kopyalamak istemez.Tabiki kopyalanacak veri tiplerinin uyumlu olması kaçınılmaz.
insert into tablo1 (val1,val2) Values('deg1','deg2') şeklindeki standart kullanımdan biraz farklı olarak values yerine yeni bir select sorgusu getirerek dönen değerlerin tabloya eklenmesi sağlanır.
insert into mla_Rev (LanguageID, AppID) select LanguageID, AppID FROM mla_Rev WHERE (RevID = 8)"

C# Stored Procedure Eklenen Kaydın Değerini Almak

Senaryo: Bir Kayıt eklediniz.ve eklenen kaydın id numarasını alarak başka işler yapacaksınız.Peki nasıl alırsınız bu değeri.Stored Procedure kullanarak.

öncelikle Stored Procedure
insert sorgusunda bir değişiklik yapmalıyız

CREATE PROCEDURE SPISIMKAYIT
@dSupplierName varchar(50),
@dSupplierAddress varchar(50),
@dSupplierTel nchar(10),

@ID int out
AS
insert into tbSuppliers (SupplierName,
SupplierAddress,SupplierTel)values
(@dSupplierName,@dSupplierAddress
,@dSupplierTel)SET @ID = SCOPE_IDENTITY()


hazırlamış olduğumuz Stored Procedure oluşturduk. Peki C# nasıl geri dönecek bu zımbırtı.
public int InsertSupplier()
{
SqlCommand cmd = new SqlCommand("Supplier_Add");
cmd.Parameters.Add("@dSupplierName", SqlDbType.VarChar).Value = supplier.SupplierName;
cmd.Parameters.Add("@dSupplierAddress", SqlDbType.VarChar).Value = supplier.SupplierAddress;
cmd.Parameters.Add("@dSupplierTel", SqlDbType.VarChar).Value = supplier.SupplierTel;
cmd.Parameters.Add("@ID", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = Connections.Connection();
Connections.Open();
cmd.ExecuteScalar();
int sonid = Convert.ToInt32(cmd.Parameters["@ID"].Value);
return sonid;
}

işte böylede geri dönerek eklediğimiz kaydın id'si

10 Temmuz 2009 Cuma

Arraylist

Dizilerde çalışmanın bir çok sıkıntısı olduğu bilir.Öncelikle dizinin eleman sayısı yazılmalıdır.Ayırca Dizinin eleman sayısının kestirilemeyeceği noktalarda oldukca büyük diziler tanımlamak gerekir.Bu diziler bellekde yer işgal eder ve yinede bir çok seneryoda elimizdeki diziden daha fazla sayıda diziye ihtiyacımız olamayacağının kestiremeyebiliriz.Sonunda ne olur IndexOutOfRangeException istisnası size fırlatılıverir.

işte dizi sıkıntılarından bizi kurtaracak süper bir yol Arraylist istediğiniz kadar bilgiyi ayrıca istediğiniz tiptekini arraylist altında kolayca tutarız.

ArrayList KList= new ArrayList(); // KListisimli ArrayList nesnesi oluşturalım.

// KListnesnemize sırası karışık tipler yükleyelim
// Add metodu ile ekleyelim.
KList.Add("Ahmet");
KList.Add(12);
KList.Add(true);
KList.Add(32.4f);
KList.Add('c');

// aList'in elemanlarını ekrana yazdıryoruz:
Console.WriteLine("\t KList'in elemanları:");
foreach(int eleman in KList)
Console.WriteLine(eleman);



unutmamamız gereken bir şey var arraylist using System.Collections sınıfı altında bulunduğu için dahil edilmeli.


ArayList Diğer fonksiyonları aşağıda listelenmektedir.
---------------------------------------------------
Add Bir nesneyi ArrayList'in sonuna ekler.

BinarySearch Sıralanmış bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.

Clear ArrayList'in tüm elemanlarını siler. Sıfırlar.

Contains Herhangi bir nesnenin ArrayList'in elemanı olup olmadığını kontrol eder.

Insert Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.

Remove Herhangi bir elemanı diziden siler.

Reverse Diziyi ters çevirir.

Sort ArrayList'i sıralar.

9 Temmuz 2009 Perşembe

Alternatif içecek Arayışları 1 - vişne suyu & meyveli buzlu çay


malzemeler:

•1 kg vişne
•yaklaşık 1,5 litre su
•2 su bardağı toz şeker (miktarını kendi isteğinize göre ayarlayabilirsiniz)
•yarım limonun suyu
hazırlanması:

1. 1 kg vişneyi yıkayıp saplarını koparın. vişneleri geniş ve derin bir tencereye alın. tencereye vişnelerin üzerlerini geçecek kadar su ekleyin. 2 su bardağı toz şekeri de ilave edip orta hararetli ateşte kaynamaya bırakın. (tencerenin kapağı taşma tehlikesine karşı açık olmalı)

2. vişne suyu kaynamaya başlayınca suyun renginin daha kırmızı olması için yarım limon suyunu ekleyin. kaynama işlemini vişneler çatlamaya başlayana kadar sürdürün. soğutup servis yapın.


ablamla üniversitemizin yaz okulu döneminde aynı dersi alırken (management dersiydi sanırım) tenefüs aralarında işletme binasının çaprazındaki kantine gidip birer ice tea alır, manzarada ders saatinin başlamasını beklerdik. ablam benden önce mezun olduktan sonra en çok birlikte geçirdiğimiz bu tenefüsleri özler olmuştum...
benim iki gün önce denediğim buzlu çay tarifini ayşen hanım mutfaktazen mail grubuna göndermişti. onun anlatımını değiştirmeden aktarıyorum.

Sıcaklarda en ferahlatan içeceklerin başında gelir bence ice tea yani soğuk çay. Evde en lezzetlilerini çabuk ve kolayca yapabiliriz.. Ben bir tarafta porselen demlikte siyah çayı 3-5 dakika bırakıyorum ve içine meyva parçaları atıyorum. En sevdiğim karışımlardan biri de çilek , şeftali ve bir kaç karanfil. Sürahinin en az yarısına kadar buzla dolduruyorum ve demi doğrudan buzların üstüne döküyorum . Buzlar eridikten sonra gerektiği kadar su ekliyorum. yarım limonu içine sıkıp , yarım limonu da 4'e bölüp kabuklarıyla içine atıyorum. İstenen şekilde ( şeker , tatlandırıcı , salvia , bal ...) tatlandırdıktan sonra birazbuzdolabında bekliyor ve afiyetle içiliyor .
Soğuk çay yaparken püf noktası demin hemen soğutulması . Bu yüzden bol buz kullanmak gerek . Bu yapılmadığında tadı değişiyor ,acılaşıyor .

7 Temmuz 2009 Salı

Access Replace Function

Access'da Replace Fonksiyonun Syntax aşağıdaki gibi
"Replace ( string1, find, replacement, [start, [count, [compare]]] )"
Örneklerde isterseniz.

Replace("alphabet", "bet", "hydro") would return "alphahydro"
Replace ("alphabet", "a", "e") would return "elphebet"
Replace("alphabet", "a", "e", 2) would return "lphebet"
Replace("alphabet", "a", "e", 1, 1) would return "elphabet"

VBA codu olarakda

Dim LResult As String
LResult = Replace ("alphabet", "a", "e")

kullanılabilir.

Access combobox'un index değerine göre verinin comboboxda gösterilmesi

seneryo şöyle : Access üzerine satırlar girdiniz satırlar : a,b,c,d olsun satır indexleride bildiğiniz üzere 0,1,2,3 olur.Diyelimki indexi 2 olan combobox'ın verisi ne ?
(olayın tersi aslında oldukca basit seçili verinin index'ini almak kolay Combobox1.Listindex derdimize çare peki ya tersi index'i biliyoruz hangi veri karşılık geliyor buna )

Dim sallama As String
sallama = combobox1.ItemData(2) ' 2 numaralı list index'e karşılık gelen veriyi al
combobox1.SetFocus
combobox1.Text = sallama ' combobox tekrar yazdır

Polymorphism Nedir

Polymorphism (Çok Biçimlilik)
Nesne Yönelimlenin anlatması biraz karışık ilkelerinden biridir ama bir seneryo ile olayı anlatmaya çalışalım.Satınal isimli bir fonksiyonumuz olsun. eğer i ürünü satın alınacak ise sadece geriye i'yi geri döndüren bir fonksiyon olmalı.Peki Satınal i ve j gibi iki farklı ürününde satın alınmasında kullanılmak isteniyor işte bu durumda SatınAl fonksiyonu çok biçimli olarak ele almak iyi bir seçim olmalı hem kodu koyalım.

Module Module1

Sub Main()
Dim two As New One()
WriteLine(two.satinal(10))
'calls the function with one argument
WriteLine(two.satinal(10, 20))
'calls the function with two arguments
WriteLine(two.satinal(10, 20, 30))
'calls the function with three arguments
Read()
End Sub

End Module

Public Class One
Public i, j, k As Integer

Public Function satinal(ByVal i As Integer) As Integer
'function with one argument
Return i
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer) As Integer
'function with two arguments
Return i + j
End Function

Public Function satinal(ByVal i As Integer, ByVal j As Integer, ByVal k As Integer) As Integer
'function with three arguments
Return i + j + k
End Function

End Class


Çıktı olarak da
10
30
60
üreteceği aşıkar

vb.net Inheritanace (Miras)

Inheritance Nedir

OOP yazarken çokca kullanılan bir işlem.Inheritance (Dahillendirme) anlamak için OOP mantığını bilmek gerekiyor.Tabiki.


Araba diye bir clasımız var mı var.Özellikleride tanımlı motoru var, 4 kapılı, direksiyonu falan filan....... tanımladınız.


şimdi BMW de bir araba doğru muyum doğru. Onunda 4 kapısı,motoru,direksiyonu var mı var şimdi arabanın tüm özelliklerini BMW için bir daha yazarsak Ayıp ederiz.
Bunun için BMW Class'ına araba Classını Inherit etmeliyiz. işte Yapısı nasıl peki ? İşte Syntax.


Public Class Araba
---
---
End Class

Public Class BMW
Inherits Araba
---
---
End Class


Bu kadar .....

Bir de örnek çakalım pekişsin.....
Imports System.Console
Module Module1

Sub Main()
Dim ss As New Two()
WriteLine(ss.sum())
Read()
End Sub

End Module

Public Class One
'base class
Public i As Integer = 10
Public j As Integer = 20

Public Function add() As Integer
Return i + j
End Function

End Class

Public Class Two
Inherits One
'derived class. class two inherited from class one
Public k As Integer = 100

Public Function sum() As Integer
'using the variables, function from base class and adding more functionality
Return i + j + k
End Function

End Class



Sonucun ne dönmesini beklersiniz. normalde ss Two Class türemiştir.onunda tek elemanı k =100 O halde sonuç 100 olur demeyin sakın :( Two class'ı One classını inherit etmiş ve doğal olarak i+j+k değerlerinide alıp 130 olarak sonuç bulunur.

Constructors Nedir

Aslında Constructer oldukca çok kullanılan Class lar içindeki Sub-End Sub parametreleri ile tanımlı (vb.net için) kod bloklarıdır. Örnek le anlatacak olursak;
Public Class Employee
Public Sub Work()
System.Console.WriteLine("I am working.")
End Sub
End Class


Work bir Constructer olarak tanımlanmış ve kullanımı ise
Dim employee As Employee
employee = New Employee()
employee.Work()
Şeklinde yazılabilir.

Base Classlarla ilgili olarak nasıl kullanabiliriz.Derseniz Inheritance konusunda biraz değineceğim fakat bir örnek olsun .net coşkun gibilerinden....
Public Class personel
Public Sub New()
System.Console.WriteLine("Personelin constructor'ü.")
End Sub

Public Sub Work()
System.Console.WriteLine(Personel Çalışıyor.")
End Sub
End Class

Public Class Patron: Inherits personel
Public Sub New()
System.Console.WriteLine("Patron constructor.")
End Sub
End Class

Patron class'ına Personel Dahil Edilerek (Inherit).onun özellikleri alınmış.
Patronda Aslında bir personeldir yaklaşımı katılmış oluyor.

Kullanımı ise şöyle

Dim manager As Manager
manager = New Manager()

Muhtemel Çıktımız ise

Personel constructor'ü.
Patron constructor.
Şeklinde olmalı gibi geliyor insanın içine.

Class ve Objeler

-Class ve Objeler
Visual Basic'de Class lar Class-End Class ifadeleri arasına yazılır.
incelemek için bir Class Syntax verecek olursak
Public Class Test
----- Variables
-----Methods
-----Properties
-----Events
End Class
Şeklinde düşünebiliriz.
Bir Classtan Yeni bir obje türetmek istenirse o obje New ifadesiyle türeterek yeni isimle oluştururuz.Örnek Olarak Dim obj As New Test()
Şimdi bir Class ve Bu classtaki nesneden türetilen bir objeyle basit bir consol uygulaması yapabiliriz.
Module Module1
Imports System.Console

Sub Main()
Dim obj As New Test()
'creating a object obj for Test class
obj.disp()
'calling the disp method using obj
Read()
End Sub

End Module

Public Class Test
'creating a class named Test
Sub disp()
'a method named disp in the class
Write("Welcome to OOP")
End Sub
End Class

Visual Basic ile OOP

OOP konularını bu başlıklar altında sınıflamak oldukca iyi olacak diye düşünüyorum.

-Class ve Objeler
-Constructors
-Inheritance
-Polymorphism
-Interfaces
-Abstract Classes
-Structures
Şimdi kısa kısa konuları özetleyeceğim.Emin değil fakat daha sonra ayrıntılı olarakda konuya girebilirim.

Böylece Nesne Yönelimli Yazılım Dilinin Üç Prensibinide içermiş olacağız. Inheritance(Miras) ,encapsulation ve polymorphism’dir

6 Temmuz 2009 Pazartesi

Ödüllü kadın yönetici erkek çıktı


"Ödüllü kadın yönetici erkek çıktı
İngiltere'de teknoloji sektöründe gösterdiği başarılarından dolayı 35 yaş altındaki “en başarılı iş kadını” ödülü alan Kate Craig'in aslında bir erkek olduğu ortaya çıktı."

3 Temmuz 2009 Cuma

MSSQL 2008 bak dosyası yükleme Error 3210 giderimi

Merhabalar elinizde *.bak dosyası varsa ve bunu mssql 2008 kayıt etmek istiyorsanız.Öncelikle nasıl yapacağınızı bilmelisiniz ve sonrada muhtemel Error 3210 nasıl giderileceğini bilmeliyiz.


Öncelikle *.bak dosyasını nasıl database yükleriz.Öncelikle Kolaylık olması için bak dosyamızı

C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup altına koyalım.Microsoft Sql Server Management Studio açalım database bağlanıp .
Bağlandıktan sonra Database Dalının üstüne gelerek Restore DataBase diyelim.
to database kısmına daha önce tablolarımızda olmayan bir isim yazalım.Source For Restore Kısmında dosyadan yedekleme yapacağımız için From Device düğmesini seçelim ve Backup Media için File Seçelim.şimdi Add diyerek *.bak dosyamızı seçebiliriz.
Ok diyerek pencemizden veritabanımızı seçelim ve restore işlemini tamamlayalım.
Eğer Error 3210 almışsanız ozaman
1. SQL Server Configuration Manager açın.
2.Gerekli SQL Sever sol tuşla tıklayın
3.Properties SEçin
4. Logon tab'ında Açılır kapanır menuden 'Local system' seçin.
Hatanızı çözecektir.Unutmayın Sql server yeniden başlar ve hizmetiniz bir süre aksayabilir.

28 Haziran 2009 Pazar

Kullanışlı MSDOS Komutları

addusers - add or list users to/from a csv file
arp - address resolution protocol
assoc - change file extension associations
associat - one step file association
at - schedule a command to run at a later time
attrib - change file attributes more
browstat - get domain, browser and pdc info
cacls - change file permissions
call - call one batch program from another
cd - change directory - move to a specific folder
change - change terminal server session properties
chkdsk - check disk - check and repair disk problems
chkntfs - check the ntfs file system
choice - accept keyboard input to a batch file
cipher - encrypt or decrypt files/folders
cleanmgr - automated cleanup of temp files, recycle bin
clearmem - clear memory leaks
clip - copy stdin to the windows clipboard.
cls - clear the screen
cluster - windows clustering
cmd - start a new cmd shell
color - change colours of the cmd window
comp - compare the contents of two files or sets of files
compact - compress files or folders on an ntfs partition
compress - compress individual files on an ntfs partition
con2prt - connect or disconnect a printer
convert - convert a fat drive to ntfs.
copy - copy one or more files to another location
csvde - import or export active directory data
date - display or set the date
dcomcnfg - dcom configuration utility
defrag - defragment hard drive
del - delete one or more files
delprof - delete nt user profiles
deltree - delete a folder and all subfolders
devcon - device manager command line utility
dir - display a list of files and folders
diruse - display disk usage
diskcomp - compare the contents of two floppy disks
diskcopy - copy the contents of one floppy disk to another
dnsstat - dns statistics
doskey - edit command line, recall commands, and create macros
dsadd - add user (computer, group..) to active directory
dsquery - list items in active directory
dsmod - modify user (computer, group..) in active directory
echo - display message on screen
endlocal - end localisation of environment changes in a batch file
erase - delete one or more files
exit - quit the cmd shell
expand - uncompress files
extract - uncompress cab files
fc - compare two files
fdisk - disk format and partition
find - search for a text string in a file
findstr - search for strings in files
for - conditionally perform a command several times
forfiles - batch process multiple files
format - format a disk
freedisk - check free disk space (in bytes)
fsutil - file and volume utilities
ftp - file transfer protocol
ftype - display or modify file types used in file extension associations
global - display membership of global groups
goto - direct a batch program to jump to a labelled line
help - online help
hfnetchk - network security hotfix checker
if - conditionally perform a command
ifmember - is the current user in an nt workgroup
instsrv - install an nt service
ipconfig - displays your IP address.
kill - remove a program from memory
label - edit a disk label
local - display membership of local groups
logevent - write text to the nt event viewer.
logoff - log a user off
logtime - log the date and time in a file
mapisend - send email from the command line
mem - display memory usage
md - create new folders
mode - configure a system device
more - display output, one screen at a time
mountvol - manage a volume mount point
move - move files from one folder to another
moveuser - move a user from one domain to another
msg - send a message
msiexec - microsoft windows installer
msinfo - windows nt diagnostics
munge - find and replace text within file(s)
mv - copy in-use files
net - manage network resources
netdom - domain manager
netsh - configure network protocols
netsvc - command-line service controller
nbtstat - display networking statistics (netbios over tcp/ip)
netstat - display networking statistics (tcp/ip)
now - display the current date and time
nslookup - name server lookup
ntbackup - backup folders to tape
ntrights - edit user account rights
path - display or set a search path for executable files
pathping - ip trace utility
pause - suspend processing of a batch file and display a message
perms - show permissions for a user
perfmon - performance monitor
ping - test a network connection
popd - restore the previous value of the current directory saved by pushd
portqry - display the status of ports and services
print - print a text file
prncnfg - display, configure or rename a printer
prnmngr - add, delete, list printers set the default printer
prompt - change the command prompt
pushd - save and then change the current directory
qgrep - search file(s) for lines that match a given pattern.
rasdial - manage ras connections
rasphone - manage ras connections
recover - recover a damaged file from a defective disk.
reg - read, set or delete registry keys and values
regedit - import or export registry settings
regsvr32 - register or unregister a dll
regini - change registry permissions
rem - record comments (remarks) in a batch file
ren - rename a file or files.
replace - replace or update one file with another
rd - delete folder(s)
rdisk - create a recovery disk
rmtshare - share a folder or a printer
robocopy - robust file and folder copy
route - manipulate network routing tables
runas - execute a program under a different user account
rundll32 - run a dll command (add/remove print connections)
sc - service control
schtasks - create or edit scheduled tasks
sclist - display nt services
scriptit - control gui applications
set - display, set, or remove windows nt environment variables
setlocal - begin localisation of environment changes in a batch file
setx - set environment variables permanently
share - list or edit a file share or print share
shift - shift the position of replaceable parameters in a batch file
shortcut - create a windows shortcut (.lnk file)
showgrps - list the nt workgroups a user is in
showmbrs - list the members of an nt workgroup
shutdown - shutdown the computer
shutgui - shutdown the computer
sleep - wait for x seconds
soon - schedule a command to run in the near future
sort - sort input
start - start a separate window to run a specified program or command
su - switch user
subinacl - edit file and folder permissions, ownership and domain
subst - associate a path with a drive letter
tasklist - list running applications and services
time - display or set the system time
timeout - delay processing of a batch file
title - set the window title for a cmd.exe session
touch - change file timestamps
tracert - trace route to a remote host
tree - graphical display of folder structure
type - display the contents of a text file
usrstat - list domain usernames and last login
ver - display version information
verify - verify that files have been saved
vol - display a disk label
where - locate and display files in a directory tree
whoami - output the current username and domain
winmsd - windows nt diagnostics
winmsdp - windows nt diagnostics ii
wmic - wmi command
xcacls - change file permissions
xcopy - copy files and folders more