Batuhan TOSUN
       confidentiality, integrity, availability

C# ile Twitter kullanımı

clock Nisan 29, 2009 14:29 author Batuhan Tosun tarafından yayınlanmıştır

Twitter API si kullanarak web sitemizde nasıl twitter kontrol edebiliriz gibi sorular duyuyorum bu aralar.Hemen blogumda yer vermeliyim diye düşündüm;)

Aşağıdaki kod yardımı ile amacınıza ulaşabilirsiniz:)

TwitterNet t = new TwitterNet("twitter", TwitterNet.ToSecureString("parola"));
  u = t.Login();

string since = DateTime.Now.ToString();
  (var message in t.GetReplies(since))

{

........

}

 

Twitter API dökümantasyonuna buradaki linkten ulaşabilirsiniz!

Görüşmek üzere;)

 



Ado.net Nesne Modeli,Çalışma Diagramı ve uygulama yapısı

clock Nisan 14, 2009 11:37 author Batuhan Tosun tarafından yayınlanmıştır

Bu makalemde ado.net nesne modeli ve çalışma mantığını küçük yazılar ve diagramlarla anlatacağım. 

   İlk diagramda ado.net in connect yapısını ve çalışma mantığını açıkladım.

 

 

İkinci diagramda ado.net in disconnect yapısını ve çalışma mantığını anlattım.

 

 u diagramımda ado.net in nesne modelini ve veri sağlayıcılarını anlattım.

 

 

Data Set : Verinin belleğe yerleştirilen temsilidir.Sadece veri içerir.Verinin nereden geldiğini bilmez.

DataTableCollection : ColumnCollection da sütunları tanımlar.

DataRelationCollection : Sıfır yada daha fazla datarelation içerir.

Bu kadar anlatım ve diagramdan sonra visual studio da görsel olarak yapılan veri tabanı işlemleri yerine size mantığı dahi iyi kuracağınız basit bir kodlama örneği veriyorum.

Ad uzaylarında ;

using System.Data.OleDb;

using System.Data.SqlClient;  //bunları referans olarak ekliyoruz.

 

ve daha sonra kodlama bloklarımızda ;

private OleDbConnection cnOleDb;//olarak tanımlıyoruz.

Ve veritabanımızla iletişimimizi aşağıdaki yazdığım kodla sağlıyoruz;

cnOleDb=new OleDbConnection();

cnOleDb.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\developermania\batu\icerik\accessveritabani.mdb'";

Bu yaptığımız işlem access veritabanları için OleDB veri sağlayıcısı ile yaptığımız kodlamaydı.


Şimdi aşağıda sqlserver için yazalım.Ama bu yazdığımız birazdaha konsept olsun.


SqlConnection c =
new SqlConnection("data source=dm-pc\\sqlexpress;integrated security=true;initial catalog=developermania");

c.Open();

SqlCommand cmd =
new SqlCommand("select * from TblUsers where user_id='" + TextBox1.Text + "'",c);

SqlDataReader dr = cmd.ExecuteReader();

Bakın sql veritabanı ile bağlantısını gerçekleştirdik ayrıca birde textbox dan girilen değeri sorgulattık.Yukarıda yazdığım gibi ilk örnekten birazdaha konsept ama yapı çok basit.

Ado.net in çalışma yapısı,işleyişi,mantığı ve genel uygulama yapısı için umarım güzel bir makale olmuştur.

 



DataBinding

clock Nisan 14, 2009 11:36 author Batuhan Tosun tarafından yayınlanmıştır

ASP.NET ile DataBinding yane veri bağlama özelliklerini ve yöntemleri…..

Machine.Config dosyamıza baktığımızda

ODBC Data Provider
OleDb Data Provider
Oracle Data Provider
SqlClient Data Provider
SQL  CE Data Provider….    Sağlayıcılarının desteklendiğini görürüz.

 

DataBinding  bu Provider lar ile veritabanı bağlantılarını yapıp koleksiyonlar arası veribağlama işlemlerinin genelidir.

Aşağıda yaratmış olduğum diagramlarda DataBinding kontrollerimizi ve kullacağımız yöntem,arabirimlerimizi görüyoruz.

 

Şimdi sırasıyla komutlarımızı ,sonuç yöntemlerimizi ve veri kaynaklarımızı kullanarak Kontrollerimizinde yer aldığı yarı-konsept örnekler ve onların kapsamlarıyla başlıyoruz.

Not:Örneklerin en sonunda uygulamanın bitmiş halinin ekran görüntüsünü veriyorum.Örneğe başlamadan önce her örnek için ilk işiniz uygulamanın ekran görüntüsüne bakma olsun ki yaptığınız kodlamanın mantığını oturtun…  

DataReader-DataGrid

Öncelikle Dizayn sayfamıza bir GridView sürüklüyoruz ve ID sini dm1 yapıyoruz.

Daha sonra kodlamamıza başlıyoruz…..

using System.Data;

using System.Data.SqlClient;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

IDbConnection con = new SqlConnection("server=**;uid=sa;pwd=**;database=developermania");//yeni bir bağlantı

//tanımladık ve veritabanı ayarlamalarını yaptık.

IDbCommand cmd=con.CreateCommand();//command oluşturduk

cmd.CommandText="SELECT * FROM lgb";//oluşturduğumuz command ile veritabanımızdaki lgb tablosuna sorgulama yaptık.

try

{

con.Open();//yarattığımız bağlantıyı açıyoruz ve aşağıda tekrar kapatacağız....

IDataReader oku=cmd.ExecuteReader();//execute edebilmek için datareader tanımlıyoruz...

dm1.DataSource = oku;

dm1.DataBind();//data soruce ün ardından dm1 gridview imizde databing atıyoruz.

}

finally

{

con.Dispose();

}

}

 

Çalıştırdıktan sonra aldığım sonuç…

 

 

 

ArrayList

Dizaynımıza bir select,bir checkboxlist,bir dropdownlist,bir radio buton ekliyoruz ve ID lerini aşağıdaki gibi değiştiriyoruz….

Ve kodlamamıza geçiyoruz……

public partial class Default2 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

ArrayList sır = new ArrayList(); sır.Add("s1");
sır.Add(
"s2");
sır.Add("s3");
sır.Add(
"s4");

a1.DataSource = sır;

b1.DataSource = sır;

c1.DataSource = sır;

d1.DataSource = sır;

e1.DataSource = sır;

DataBind();

}

}

}

En son olarak aldığımız ekran görüntüsü….

 

  

IDataReader

Dizaynımıza bir dropdown list ,bir label ,bir button getiriniz.Ve ID lerini aşağıdaki gibi değiştiriniz…

 

Ve kod bölümümüze geçiyoruz….

using System.Data;

using System.Data.SqlClient;

 

public partial class Default3 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

IDbConnection con = new SqlConnection("server=**;uid=sa;pwd=**;database=developermania");

IDbCommand cmd = con.CreateCommand();cmd.CommandText =

"SELECT * FROM lgb";

try

{

con.Open();//yarattığımız bağlantıyı açıyoruz ve aşağıda tekrar kapatacağız....

IDataReader oku = cmd.ExecuteReader();

_lgb.DataSource = oku;

_lgb.DataTextField =
"uye_id";_lgb.DataValueField = "lidergencbilisim";

_lgb.DataBind();

}

finally

{

con.Dispose();

}

}

else

{

dm.Text =
string.Format("seçili employee #{0}", _lgb.SelectedItem.Value);

}

Örn. Son ekran görüntüsü….

 

 

DataSet

Son olarak diğer komutlarımızla beraber dataset komutunu nasıl kullanacağımız öğreneceğiz….Dizaynımıza iki listbox,bir label,bir button koyuyoruz..

using System.Data;

using System.Data.SqlClient;

 

public partial class dataset : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

SqlConnection cn = new SqlConnection("server=***;uid=sa;pwd=***;database=developermania"); SqlDataAdapter da = new SqlDataAdapter("select * from lgb", cn);

dataset ds = new dataset();//diğer kodlamalarımıza nazaran burada dataset tanımladık ve kullandık..

da.Fill(ds, "lgb"); l1.DataTextField = "uye_id";
l1.DataValueField =
"lidergencbilisim";
l1.DataBind();

DataView dv = new DataView(ds.Tables["lgb"]);//ds ismiyle tanımladığımız dataset ile dataview içerisinde içerisinde kullandık

dv.RowFilter("uye_id like 'G%'");dv.Sort = "uye_id";

l2.DataSource = dv;

l2.DataTextField = "uye_id";
l2.DataValueField =
"lidergencbilisim";
DataBind();

}

else

{

ll.Text =
string.Format("l1={0},l2={1}", l1.SelectedItem.Value, l2.SelectedItem.Value);

}

}

Bir makalemizin daha sonuna geldik....Mutlu günler dilerim.



C# ta Kontrol Blokları -2

clock Nisan 14, 2009 11:33 author Batuhan Tosun tarafından yayınlanmıştır

Blok kontrol kodları-2/switch-case)

İlk makalemizde basamaklanmış if iafedelerini göstermiştik.Bu basamaklı ifadeleri daha etkin ve kolay okunabilir bir hale getirmek için switch-case bloklarını kullanırız.

Bir switch bloğunda switch,case,default,break gibi altın kelimeler vardır.

Daha önceki kontrol bloglarıyla olan ilk makalemde (bu onun devamı niteliğinde) verdiğim örneği bu sefer switch bloklarıyla vereceğim.

Switch(no)
{

Case 0 :
             noisim=”Microsoft”;
             break;
Case 1 :
             noisim=”sql”;
             break;
Case 2 :
             noisim=”visual studio”;
             break;
Case 3 :
             noisim=”forefront”;
             break;
Case 3 :
             noisim=”server2008”;
             break;
default :
              noisim=”değer yok”;
              break;

}

                Evet arkadaşlar şimdi kodumuzu if-else e göre neler değişti  onagöre açıklayalım.Eğer ilk makalemi okuduysanız orda verdiğim örnekle benzer yapıdalar.İşin aslı aynı görevide görürler.

                Ancak biz switch bloklarında değişikli yapabiliriz.Daha doğrusu bunlar if den ayrılmalarına neden olan farklılıklardır.if-else bloklarında uygun değer sağlanınca blok kesilir.Ancak swtich te böle bir zorunluluğumuz yok ,yane biz orda break komutunu kullanmazsak blok kodu sonuna kadar devam edecektir.

                 Switck-case bloklarının if bloklarından ayrılmasını sağlayan diğer çok önemli fark ise;aralık değeri girmememizdir.

Şimdi 3 maddeyle  switch-case deyimlerinin kurallarını yazmak istiyorum

1)switch ifadesinde int veya string gibi temel veriler kullanırız.
2)case etiketlerimizde sabit deyimler çeviririz.
3)case etiketlerimiz benzersiz olmalıdır.

        Yukarıdaki cümlede belirttiğim gibi” if-else bloklarında uygun değer sağlanınca blok kesilir.Ancak swtich te böle bir zorunluluğumuz yok ,yane biz orda break komutunu kullanmazsak blok kodu sonuna kadar devam edecektir.” gibi bir cümle kullandım.
         C# ın yaratıcıları break komutunu kullanmanın iyi bir şey olduğunu ve koddan çıkartmanın nadirde olsa hatalara yol açabileceğini söylüyor.Gerçektende öle özellikle büyük c projelerinde maliyetli hatalara sebep olabiliyor.Hatta No fall-through yane geçiş yok kuralı ilede bunu belirtiyorlar.
          Ama siz yinede sağladığınız bloktan sonraki bloğa illa geçmek istiyorsanız c# ta goto deyimini kullanabilirsiniz.Ancak bizde,c# ın yaratıcılarıda bunu pek fazla önermiyoruz.

 

Örnek :

Şemalarımız ve kod bloklarımızı önce ekran görüntüsüyle belirtelim…

 

 

 

Sizlere zaman kaybı olmaması açısından kodları aşğıda veriyorum…

string product;
product = textBox1.Text;           
switch (product)
           
{
               
case "visual studio":
                   
label1.Text = "kuruldu";
                   
break;
                
case "server 2008":
                   
label1.Text = "kurulu değil";
                   
break;
               
case "sql server":
                   
label1.Text = "kurulu";
                   
break;
               
case "silverlight":
                   
label1.Text="kurulu değil";
                   
break;
               
default:
                   
label1.Text="geçersiz ifade";
                   
break;
                    

            }

Hepinize Kolay Gelsin İyi Çalışmalar…..



Fonksiyon ve Prosedürler

clock Nisan 14, 2009 11:33 author Batuhan Tosun tarafından yayınlanmıştır

 Bu  makalemde size c# içerisinde yer alan fonksiyon ve prosedürlere değineceğim.

         İlk olarak yapı ve atamasını nasıl olduğuna bakalım.Fonksiyon ve prosedür farklarına daha sonra gireceğim.Şimdilik ana ypılardan gidelim.

Tip fonksiyon_name(parametrelistesi)

{

Gövde ifadeleri

}

 

Gerçek örnek tanımlamalarıyla adım adım devam ediyoruz.

1)

İnt addvalues(int a,int b)
{

… …. …

}

 

2)eğerki bir değer döndürmeyeceksek  void ile deklare ederiz.

Void showResult(int answer)

{

… …. …

}

3)fonksiyonumuzun bir bilgi döndüresini istiyorsak yane başka bir deyişle void çevirmesini istemiyorsak fonksiyonun içinde return ifadesine yer veririz.

İnt  addvalues(int a,int b)

{
//….
….
return a+b;

}

 

4)fonksiyonları çağırırken kullanıcağımız kod blokları aşağıdaki gibi olur;

a)
İnt  addvalues(int a,int b)

{
////

}

a.       Şeklinde olan fonksiyon aşağıdaki gibi çağırılır.

 

İnt cag1=11;
int cag1=12;

Addvalues(cag1,cag2);

 

            Yazımın ortalarında değer döndürmek istersek return kullanırız demiştik eğerki bir sonuc döndürmek istemezsek void ile ifade ederiz demiştik.İşte kilit noktası burası void ile deklare edilen kod bloklarına prosedür denilir.

Private void tikla(object sender,EventArgs e)
{
MessageBox.Show(“basıldı”);

}

         Dikkat ettiyseniz sonuca gitmiyoruz.Direk olarak uygulamanın yapısına gidiyoruz.Fonksiyonların farkını tekrar söylemek gerekirse şöyle açıklamak gerekir.”prosedürlerde değişken eşitlemiyoruz ancak fonksiyonlarda bir değişkene eşitleyerek direk olarak değer alabiliyoruz.

    Fonksiyonlar ve prosedürler Private ve Public olarak(internal,protected)olarak tanımlanabilir.

Private ve public in farkı şudur.Private tanımlamada sadece  değeri o kod bloğu içerisinde kullananırız.Public tanımlamada ise formun istediğimiz yerinde o değeri kullanabiliriz.

Şimdi fonsiyon ve prosedürü bir uygulama üstünde birlikte inceleyelim.

 

Private Double mat(int a,int b)//private bir fonksiyon ve parametlerini tanımladık
{
Double c;
c=3*a*a-2*b+7;//fonksiyonun göbek işlemi
return c;//sonucu döndürdük
}

 

Private void button1_Click(object sender,EventArgs e)//private bir tanımlı prosedür oluşturduk
{
int er=10,int ar=20;double  sonuc;//
degerlerimizi tanımladık
deger=mat(er,ar);//
yukarda oluşturduğumuz mat fonksiyonunu çağırdık ve deger değişkenine atadık,parametreletini tanımladık
this.text=”cevap=”+sonuc.ToString();//sonucu yazdırdık
}

 Fonksiyon ve prosedürlerle ilgili umarım kafanıza takılan bir yer kalmamıştır.Bu konu ile ilgili makalelerim devam edecektir.



Diziler

clock Nisan 14, 2009 11:32 author Batuhan Tosun tarafından yayınlanmıştır

Dizi nedir?
       Dizi,bir takım sıralanmış öğeler dizisidir.Dizi içerisindeki tüm öğeler aynı türdendir.Diziler ile yaptığımız işlemleri diğer araçlarımızı yada basite indirgeyerek yapabiliriz.Ancak bu birazda işkenceye dönüşür.


       Diziler her an kayıt ekleme ihtimali olan konsept ve yarı konsept uygulamalarda kaçınışmaz kullandığımız,yapacağım işlemleri daha kıs kod parçalarıyla yapmamızı sağlayan ve yukarıdada yazdığım gibi her an değişme veya kayıt ekleme durumu olan sistemler bize kolaylık getiren kod bütünlüğüdür.

       Bu makalemi okuyan arkadaşların temel bilgisi olduğunu düşünerek,devam ediyorum.

 

int[] dizi;//bir dizi tanımladık.

dizi = new int[16];//diziye boyut atadık

int boyut = int.Parse(Console.ReadLine());int[] dizi= new int[size];//yukarıda atadığım değerden farklı olarak bu işlemde boyut atamadım.

//boyutu işlem sırasında tanımlayacağım ;)

 

Yukarıda tanıladığımz değerler tek boyutludur.Bunu iki boyutlu olarakta,hatta ilerle göstericeğim olan boyutsuz olarakta tanımlayabiliriz.

 

int[,] tablo = new int[4, 6];//burada tanımadığım iki boyutku dizilere örnektir.

Şimdi iki boyutlu dizileri bir süre unutalım.İlk verdiğim örneklerle devam ediyoruz.

 

int[] dizi = new int[4] { 4,8,9,1};//burada elemanlarıyla beraber tanımladığımız dizimizi görüyorsunuz.

//işi biraz daha ilerletiyorum.ve rastgele sayı üreteceğimiz bir kod yazıyorum.

int srn = new Random(); int[] dizi = new int[6] { srn.Next() % 10, srn.Next() % 10, srn.Next() % 10, srn.Next() % 10, srn.Next() % 10, srn.Next() % 10 };

//yukarıda kullandığım system.random rastgale sayı türetmeye yarayan bir sınıftır.next ise sayının dönmesine yardımcı olur.

 

 Şimdi işi azbuçuk daha abartalım ve dizinin öğeleri arasında gezinerek bir yineleme gerçekleştirelim.

int[] dizi = new int[4] { 4, 8, 9, 1 };

for (int goster = 0; goster != dizi.Length;goster++)//kullandığımız lenght dizinin öğeleri arasında

//gezinmemize ve dizideki elemanların sayısını görmemize yardım eder.

{

int dizi = dizi[goster];Console.WriteLine(dizi);

}

 

Son göstereceğim örnek ise bir dizinin tüm içeriğini ve boyutunu başka bir dizi üzerine taşımak olacaktır.

 

int[] dizi = new int[4] { 4, 8, 9, 1 };

int[] tasi=(int[])dizi.Clone();//tüm diziyi alır ve tasi adlı dizinin içinde oluşturup yaratır.

 

Son olarak jagged yane boyutsuz dizi nasıl oluşturulur ve kullanılır onu göstermek istiyorum.

 

int[][] jagged;

jagged=new int[3][];jagged[0]=

new int[4];

jagged[1] = new int[8];jagged[2] =

new int[9];

//.......................

jagged[2][3] = 56;

label1.Text = jagged[2][3].ToString();

 

Şeklinde kullanılabilir........

Bir sonraki makalemizde görümek ümidiyle sağlıcakla kalın....



ConnectionOptions(c#.net 2.0)

clock Nisan 14, 2009 11:31 author Batuhan Tosun tarafından yayınlanmıştır

Net de konuştuğum bir arkadaşımın sorusu üzerine dolaylı yoldan aklıma geldi.Kolay ve basit bir kullanımı olan connectionoptions ile net üstünde açıklayıcı bir makale bulamadım.Bende c# ı net üstünden öğrenmeye çalışan ve kitap,eğitim vs. almayan arkadaşlar için bilgi amaçlı yazmak istedim.

 ConnectionOptions bulunduğunuz ağ üzerinde veya bağlanacağınız bilgisayarda yer alan kullanıcı adı,şifre,bekleme süresi,arama trafiği vs. özellikleri bu sınıf değişkeni ile belirleyebilirsiniz.

private void button7_Click(object sender,EventArgs e)

      {
         ConnectionOptions ag_uzeri=new ConnectionOptions();
         ag_uzeri.EnablePrivileges=true;
         ag_uzeri.TimeOut=TimeSpan.Parse("120");
         ag_uzeri.Impersonation=ImpersonationLevel.Impersonate;
         ag_uzeri.UserName="admin";
         ag_uzeri.Password="12345";

       }

 

       Yazımın sonuna gelmeden önce bana daha önce gelen bir soruyu yine burda yazmak istedim.Aslında basit ama bazen gözden kaçan bir püf nokta.Yapısı ConnectionOptions a benzeye ManagementScope kullanılırken derleyicinin hata vermemesi için lütfen "using System.Management;" ekleyin...



C# ta kontrol blokları-1

clock Nisan 14, 2009 11:30 author Batuhan Tosun tarafından yayınlanmıştır

Blok Kontrol Kodları-1  (if-else/if) 

 

Karar verme mekanizmalarında “if - else” kullanımı:

İf ifadesi kodlamalarımızda şart ı sağlar.Bu kodumuzu dijital saatlarin çalışma mantığından bir örnekle yaparsak mantığı daha iyi anlayabilirsiniz.

İnt saniye : 0 ;
İnt dakika : 0 ;

..
.
if(saniye==59){

                            saniye = 0;
                            dakika++;}
                                               else

saniye ++;

 

Örnek Açıklaması:
         Bakın burada gördüğünüz gibi bir şart bloğu kodladım.if sonra açıp kapadığım parantezi arasına şart kodunu yazarız.Bu örnekte “eğer saniye 59 u gösterirse” şartını kurduk.Ondan sonra açıp kapadığımız parantezin “içinde saniye 59 u gösterdiğinde bunları yap” görev kodları vardır.kodlama bittikten sonra gelen else ifadesi değilse yada olmazsa anlamı taşır.Yane saniye 59 u göstermezse saniyeleri arttırmaya devam et şeklinde bir kodlama yaptık.

İf blokları iç-içe kullanmak:

Örnek kodlama:

İf(no==1)
        noisim =  “Microsoft”;
else if (no==2)
        noisim= “sql”;
else if (no==3)
        noisim= “visual studio”;
else if (no==4)
        noisim= “forefront”;
else if (no==5)
        noisim= “server2008”;
else
        noisim = “değer yok”;

Kod açıklaması:
     Eğer girilen değer 1 ise Microsoft değerini döndür  eğer değer 1 değil 2 ise sql değerini döndür…..vs,vs….şeklindeki örnek kod açıklamasını anladığınızı varsayıyorum.En sonunda kullandığı tel else ifadesi ile eğer hiçbir şart uymuyorsa “değer yok” olarak belirt anlamına gelir.

 


Şimdi size mantığı kavrayabilmek için küçük ve basit bir örnek sunuyorum();  

 

 

 

 

 

 

 

Kodları zaman kaybetmemeniz için text e döküyorum…

 

 private void button1_Click(object sender, EventArgs e)   

     {           

 if (checkBox1.Checked == true)  

              label1.Text = "Sql server2003";       

     else if (checkBox2.Checked == true)              

  label1.Text = "Sql server2008";           

 else if (checkBox1.Checked == true && checkBox2.Checked == true)               

 label1.Text = "çift seçim yaptınız HATA!!!";           

else if (checkBox1.Checked == false && checkBox2.Checked == false)               

 label1.Text = "seçim yapmadınız";                 

   }    

Makalemin ikinci bölümünde switch-case bloklarını anlatacağım onlarlada basit bir örnek yapıp en son tüm blokları kullanıp güzel bir uygulama yapacağım.Kolay gelsin....



ConnectionOptions(c#.net 2.0)

clock Ekim 30, 2008 00:56 author Batuhan Tosun tarafından yayınlanmıştır

           Net de konuştuğum bir arkadaşımın sorusu üzerine dolaylı yoldan aklıma geldi.Kolay ve basit bir kullanımı olan connectionoptions ile net üstünde açıklayıcı bir makale bulamadım.Bende c# ı net üstünden öğrenmeye çalışan ve kitap,eğitim vs. almayan arkadaşlar için bilgi amaçlı yazmak istedim.

 ConnectionOptions bulunduğunuz ağ üzerinde veya bağlanacağınız bilgisayarda yer alan kullanıcı adı,şifre,bekleme süresi,arama trafiği vs. özellikleri bu sınıf değişkeni ile belirleyebilirsiniz.

private void button7_Click(object sender,EventArgs e)

      {
         ConnectionOptions ag_uzeri=new ConnectionOptions();
         ag_uzeri.EnablePrivileges=true;
         ag_uzeri.TimeOut=TimeSpan.Parse("120");
         ag_uzeri.Impersonation=ImpersonationLevel.Impersonate;
         ag_uzeri.UserName="admin";
         ag_uzeri.Password="12345";

       }

 

       Yazımın sonuna gelmeden önce bana daha önce gelen bir soruyu yine burda yazmak istedim.Aslında basit ama bazen gözden kaçan bir püf nokta.Yapısı ConnectionOptions a benzeye ManagementScope kullanılırken derleyicinin hata vermemesi için lütfen "using System.Management;" ekleyin...

Teşekkürler....Kolay Gelsin!!!