[]

C# yazılım programında yardıma ihtiyacım var !

Üniversite Bilgisayar Programcılığı 2.sınıf öğrencisiyim. C# (C sharp) da bazı kodların tam ne anlama geldiğini anlayamadım Allah razı olsun üni hocamız stack overflow'dan copy paste yapmak dışında bir yeteneği olmadığı için kodların ne işlevi olduğu hakkında bir fikri yok ve online eğitim vermeye başladı. Kendisini anlamak zaten zordu şimdi hiç anlayamıyorum.İnternette araştırdım yeterli bilgiye ulaşamadığımı düşünerek sizlere sormak istedim. Yardımcı olabilecek var mı ?

SqlCommand cmd = SQLBaglantisi.getCommand("select PatientDB,Name,LastName from PatientInfo where TCNo=@no"); ( Buradaki TCNo=@no kısmındaki @no neyi ifade ediyor ? çünkü benim 2 adet değişkenim var birisi Sql'den gelen ötekisi C# daki , ikiside olmadığına göre o neyi ifade ediyor ? )

cmd.Parameters.AddWithValue("@no", txtTcNo.Text.Trim()); buradaki trim dediğimiz olay tam nedir bölmek gibi bir şeyse neden buna ihtiyacımız var ?

SqlDataReader dr = cmd.ExecuteReader(); ExecuteReader ne işe yarar ?
dr.Read();
string name = dr.GetString(1); dr.GetString(1); kodu name degişkenine eşitleniyor ancak diğer değikenler için aynı şeyleri yapmıyor neden ?

cmd1.ExecuteNonQuery(); nedir ne işe yarar ?

cmd1.Connection.Dispose(); nedir ne işe yarar ?

DataTable dt = new DataTable(); C# üzerinde ben dataGridView oluşturmuştum neden burda tekrar oluşturmak zorundayım ?
dt.Load(dr); dt.load nedir ne işe yarar ?
dataGridView1.DataSource = dt; nedir ne işe yarar

 
kodlari ekleyip oyle sorsaniz daha guzel olmaz mi?


  • cirkinkizyokturazvotkavardir  (01.04.20 14:38:05) 
Düzeltiyorum hemen Afedersiniz.


  • caner555  (01.04.20 14:39:24) 
1-TCNo alanını bir değer alarak select atıyor. Yani select'inin where kosuulunda calısacak olan tc no parametrik olarak sorguya geliyor @no ile.

2-Buradaki trim ile ekrandan aldıığı tc no için, System.String sınıfından çağrılan ve string değerin başındaki ve sonundaki boşlukları silen fonksiyon.

3- SqlDataReader; ExecuteReader geriye SqlDataReader tipinde veri döndürür. qlDataReader, sadece okunabilir olarak kullanılır. Satır satır okuma işlemi yapar.

4-çünkü dr.getstring(1) ile 1 indexli sütuna erişmiş oluyorsun. 2 dersen farkı görürsün.

5-ExecuteNonQuery() ; Bu metod geriye int olarak değer döndürür.update, insert, delete işlemlerinden etkilenen satır sayısı döndürür.

6-Dispose işlemi sınıf türünden nesnelere uygulanabilir. Bunun nedeni Heap de yaratılıyor olmaları ve bellekte yer tutmalarıdır. Fonksiyonlar ise işlemciyi ve belleği sadece çalıştıkları sürece meşgul ederler. Fonksiyonlardan çıkıldığında içlerinde tanımlanmış local değişkenler zaten dispose olur ve bellekten temizlenir.

7- DataTable; DataSet üzerindeki tabloları temsil eder. Bir veri kaynağındaki tablolara benzer. bu dt nesnesi senin datanı db2den buraya çeker ve sen bunu datasource olarak ele alıp gridine bağlarsın.

8-dataGridView1.DataSource = dt; nedir ne işe yarar? 7 numaralı sorunun cevaabı aslında bunu da sana verir.

Yalnız hocam bunları artık geçiyor olman lazım. Çok basit şeylerde takılmışsın. Bunlar işin ABC'si. Buralarda bu kadar zaman harcıyorsan ileride, iş hayatında çok büyük sıkıntılar çekersin. Kolay gelsin.
  • datnet  (01.04.20 15:25:14 ~ 15:26:43) 
@no -> no sizin degiskenin adı başına @koyacaksınız. TCno tablodaki kolonun adı.

c# trim fonksiyonu yazsanız google a en üstte çıkar zaten. o yüzden diğerlerini açıklamayacağım. sorularınız çok basic :/ biraz araştırma yapmayı öğrenirseniz meslek hayatınız için daha iyi olur. bilg müh. olarak tavsiyem.


edit: datnet kıyamamış açıklamış :(
  • sanguine mcqaer  (01.04.20 15:27:26) 
selam, bayadır sql ile uğraşmıyordum, biraz bakmam gerekti.
öncellikle haddim değil belki ama daha mesleğin başında olman nedeniyle sana bir nasihat vermek istiyorum. böyle tek tek bu ne işe yarar diye sormak yerine, kodun geneline odaklanıp problemli alanları sorman daha çok yanıt alacaktır. mesela trim ve executeReader sormamalısın. basit bir google araması ile ne işe yaradıkları çıkacaktır.

- sql ifadesindeki @ işareti, ben bu parametreyi sonra vereceğim demek. zaten AddWithValue ile kimlik noyu veriyoruz. trim bölmek değil, paremetre verilmediğinde baştaki ve sondaki boşlukları atıyor.

- ExecuteReader yukardaki sql komutunu çalıştırıyor ve SqlDataReader nesnesi dönüyor. Bu nesne ile sonuçlar üzerinde gezebiliyoruz.

- diğer değişkenleri almamış sadece name'i almış. Nedenini bilemeyiz sadece bu koda bakarak.

- ExecuteNonQuery, cmd1 commandı için yapılmış. Sonuç dönmüyor ExecuteReader'dan farklı olarak. Daha doğrusu query sonucu dönmüyor, operasyondan etkilenen satır sayısını dönüyor.

- Dispose, bağlantı resource'larını bırakıyor.

- Sen gui'de view oluşturmuşsun. Onun verisi de DataSource'unu eşitleyerek veriliyor.
  • absel  (01.04.20 15:36:54 ~ 15:44:39) 
İlgi ve alakanız için teşekkür ederim. Benim object-orianted olarak java ile aram çok iyidir diyebilirim ayrıca tez projem de java için seçim yaptım ama C# dan nedense nefret ediyorum çünkü ben bu mesleğe okulda öğrenmeye başladım önceden ilgim yoktu ve kodlar hakkında bir soru sorduğumuzda hocamızdan iğneleyici tepkiler aldığımız için soru sormaktan korkar olduk size göre basit gelen bu soruları zamanında sizde sorguladığınızı ve ilk bakışta anlamadığınızı düşünüyorum. İllaki sorguladığım şeyler olacak bunda tepki gösterecek bir şey olduğunu düşünmüyorum. ; hatası bile yapmamış insanlar bana cevap verdiyse zaten çok şanslı saymalıyım kendimi öyle değil mi :) ayrıca ben hocası yüzünden nefret ediyorum bu programala dilinden . Öğreticisi yüzünden bu dil ile çalışacaksam da o işe girmeyeceğim zaten sadece C- notu ile verip geçmenin derdindeyim.Nihayetinde yazılım işi C# dan ibaret değil :D


  • caner555  (01.04.20 15:51:32 ~ 15:54:26) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.