Textbox1 - textbox2
textbox3 - textbox3
textbox4 - textbox5
KaydetButonu
yanyana 6 textbox var diyelim. Kaydete bastığımızda bu kayıtların veritabanına ayrı ID ler ile kayıt olmasını nasıl sağlarım.
birde diyelim sadece ilk satırdaki text1 ve text2 doluysa o kaydı yapıp digerlerine geçmemesi lazım. Eğer tüm textboxlar dolu ise yeni ID ler oluşturup yazması gerekiyor.
normalde insert into ile istediğim textleri yazdırabiliyorum fakat çoklu textboxlar olaya girince tıkandım.
Visual Basic Toplu Kayıt nasıl yapılır
9
●578
- 17-01-2013, 11:01:42sabitrob33n adlı üyeden alıntı: mesajı görüntüle
yanyana 2 şerli
alt alta 6 satırda
toplamda 12 textboxum var
Şayet trabzon yağmurlu textboxları boş diyelim, veritabanına yeni bir ID oluşturmaması lazım.
- 17-01-2013, 11:36:54kaydet butonuna basit bir if ifadesi yazacaksın;
if text1.text <> "" or text2.text <> "" or or or diye tüm textlerini if e katıp; 'burada textlerin içi boş değilse anlamını yaratıyosun 'veritabanı kayıt sub unu çağırabilirsin else 'burası da textboxlardan birinin boş olduğunu söyleyebilirsin 'işlem yapmadan çıkarsın end if
doğru anladım sorunu umarım
ya da sen şey mi istiyorsun girilen kadar oluştursun mesela ayşe text1 demir text2 ise 2 text doluysa o kaydı oluştursun ama sadece isim veya soyad girildiyse o kaydı oluşturmasın bumudur? - 17-01-2013, 11:51:50Tüm textboxların değerlerini alıp bir list'e ata. Sonra for ile list'in count'u kadar dön ve insert yap.
Örnek kod:List<string> list = new List<string>(); foreach(Control c in Page.Controls) { if (c is TextBox) { if(c.Text != "" && c.Text != null) list.Add(c.Text); } } for(int i = 0; i < list.Lenght; i++) // insert islemiDim list As New List(Of String)() For Each c As Control In Page.Controls If TypeOf c Is TextBox Then If c.Text <> "" AndAlso c.Text IsNot Nothing Then list.Add(c.Text) End If End If For value As Integer = 0 To list.Lenght // insert islemi Next
- 17-01-2013, 17:01:20insert cümlesini anlayamadım. Yani arka arkaya ID ADI SOYADI verilerini nasıl kaydedecek
1 Ayşe DEMİR
2 Fatma GÖNEN
3 Trabzon Yağmurlu
Çünkü benim cümle insert into tablom (ADI,SOYADI) values (Textbox1.text, textbox2.text)
şeklinde, e nasıl arka arkaya kayıt yapabilirim tek butona basınca. - 17-01-2013, 17:17:16For içerisinde textbox'ları değil list'in elemanlarını yazacaksın.
Hatta o listi dictionary<string, string> olarak değiştir ve ad soyad şeklinde yazdır.
Dictionary<string, string> dic = new Dictionary<string, string>(); dic.Add(txtbox1.text, txtbox2.text);
For ile döndüğün için o dictionary içerisinde ne kadar eleman varsa o kadar dönerek sorgunu çalıştıracak. Sen yine tek seferde bitireceksin işi. - 17-01-2013, 17:39:30rob33n adlı üyeden alıntı: mesajı görüntüle

buradaki page.controls nedemek oluyor hata vermiş zaten orda
ya bu FOR döngüsüyle birtürlü barışamadım. Ne yaparsam yapayım örneği anlıyorum yeni bir mantık geliştirmeye gelince bocalıyorum. - 17-01-2013, 18:07:46Sen direk elle eklemişsin, o zaman foreach'e gerek yok. Ama boş olanlarıda ekletmeye çalışırsın if ile kontrol yapmazsan.
Ordaki Page.Controls ben genelde web taraflı çalıştığım için web sayfasındaki tüm textboxları bulur. Sen onu this.Controls veya form.Control olarak değiştirebilirsin ki kullanmana gerek kalmadı.
For'un çalışma mantığıda şu. Sen o dictionary'e isimleri ekliyorsun ve şu şekle geliyor.
dic 0. eleman - "ali veli"
dic 1. eleman - "ahmet mehmet"
dic 2. eleman - "ayşe fatma"
Bunu 0'dan başlayıp 3'ten küçük olana kadar döner ve sırayla i neye karşılık geliyorsa yazar. i = 0 durumunda ali veli, i = 1 durumunda ahmet mehmet ..vs
Ama senin database'inde id değerinin auto_increment falan olması gerek. Id değerleri unique olmalıdır. Aksi halde aynı id ile aynı isimleri eklersin ve aramada sana aynı sonuçlar birçok kez gelir.
O for'uda şu şekilde yaz.
For Each p As var In dic Next insert into tablom (ADI,SOYADI) values (p.Key, p.Value); End
