Soran
Sınırlı sayıda kayıt ekleme

Soru
-
Her keze merhabalar;
Hemen soruma geçmek istiyorum. etkinliğe sporcu ekleme yapmak istediğinde kategoriye en fazla kulüplerin 4 sporcu eklemesini istiyorum 5incisini eklediğinde kategoriye aynı kulüp ten 4 kişiden fazla yükleyemezsiniz mesajı vermek istiyorum.
verileri GridView ile çekiyorum. sporcu seçimleri ise CheckBoxile yapıyorum. Bu konuda yardımlarınızı bekliyorum.
Teşekkürler.
Tüm Yanıtlar
-
CheckBox sınıfının CheckedChanged olayını kullanarak dörtten fazla CheckBox işaretli ise uyarı mesajı verip son işaretlenen CheckBox'ın Checked özelliğini false yapabilirsiniz...
private void Form1_Load(object sender, EventArgs e) { Controls.OfType<CheckBox>().ToList().ForEach(cBox => cBox.CheckedChanged += checkBox1_CheckedChanged); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { int cbCount = Controls.OfType<CheckBox>().ToList().Where(cBox => cBox.Checked == true).Count(); if (cbCount > 4) { (sender as CheckBox).Checked = false; MessageBox.Show("HATA: En fazla dört sporcu seçebilirsiniz.!."); } }
Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...
- Yanıt Olarak Öneren Altan Özdemir 31 Mayıs 2018 Perşembe 07:03
- Yanıt Önerisini Geri Alan Altan Özdemir 1 Haziran 2018 Cuma 06:18
-
Merhaba Murat'bey
Resimdeki durum benim özetim ilk yazdığım biraz anlamsız oldu.
- Düzenleyen Hanbey BULUT 31 Mayıs 2018 Perşembe 12:06
-
-
-
Şöyle yapabilirsin:
CheckBox'ları for ile döndür ve san zaten true veya false döndürecek
int tplmsy=4; int dgr=0;
if(CheckBox==tplmsy)
{dgr +=1 }
else{
//uyarı mesajı
}
Bu şekil bir kod yazabilir istediğin bir sayı sonrasını uyarı verdirebilirsin.İstersen yukardaki değişkene veritabanından istediğin sayıyı getirerek kontrol edebilirsin.- Düzenleyen Ebubekir Bastama 1 Haziran 2018 Cuma 01:43
-
private void button1_Click(object sender, EventArgs e) { bool isChecked; string key; int limit = 1; List<DataGridViewRow> checkedRows = new List<DataGridViewRow>(); foreach (DataGridViewRow row in dataGridView1.Rows) { isChecked = Convert.ToBoolean(row.Cells["CheckBoxKolonAdi"].Value) == true; key = Convert.ToString(row.Cells["KategoriKolonAdi"].Value); if (isChecked) { if (checkedRows.Where(r => Convert.ToString(r.Cells["KategoriKolonAdi"].Value) == key).Count() < limit) checkedRows.Add(row); else MessageBox.Show($"HATA: {key} kategorisinde {limit} sporcudan fazla seçim yaptınız.!."); } } // Burada checkedRows listesini kullanarak kayıt işlemlerini yapabilirsiniz.!. }
Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...
-
Cevaplar için teşekkürler yalnız ben asp.net kullanıyorum
Kodum ise şu şekilde
protected void Button1_Click(object sender, EventArgs e) { foreach (GridViewRow row in gweSporcular.Rows) { DataRow drKul = klas.GetDataRow("Select * From Etkinlik"); DropDownList ddlKategori = (row.FindControl("ddlKategori") as DropDownList); DropDownList ddlKategoriYas = (row.FindControl("ddlKategoriYas") as DropDownList); CheckBox chkSelect = (CheckBox)row.FindControl("chkSelect"); string name = row.Cells[0].Text; string id = row.Cells[1].Text; string address = row.Cells[2].Text; string KlubID = row.Cells[5].Text; string EtkinlikID = row.Cells[6].Text; bool durum; if (chkSelect.Checked) durum = true; else durum = false; SqlConnection baglanti = klas.baglan(); SqlCommand cmd1 = new SqlCommand("Update Etkinlikler SET KategoriID=@KategoriID,KategoriKiloID=@KategoriKiloID,Secili=@Secili Where SporcuID=" + id, baglanti); cmd1.Parameters.AddWithValue("KategoriID", ddlKategori.SelectedValue); cmd1.Parameters.AddWithValue("KategoriKiloID", ddlKategoriYas.SelectedValue); cmd1.Parameters.AddWithValue("Secili", durum); cmd1.ExecuteNonQuery(); } }
-
private void button1_Click(object sender, EventArgs e) { bool isChecked; string key; int limit = 1; List<GridViewRow> checkedRows = new List<GridViewRow>(); foreach (GridViewRow row in dataGridView1.Rows) { key = (row.FindControl("ddlKategori") as DropDownList).SelectedValue.ToString(); isChecked = (CheckBox)row.FindControl("chkSelect").Checked; if (isChecked) { if (checkedRows.Where(r => Convert.ToString(r.Cells["KategoriKolonAdi"].Value) == key).Count() < limit) checkedRows.Add(row); else MessageBox.Show($"HATA: {key} kategorisinde {limit} sporcudan fazla seçim yaptınız.!."); } } SqlConnection baglanti = klas.baglan(); foreach (GridViewRow row in checkedRows) { key = row.Cells[1].Text; using (SqlCommand cmd1 = new SqlCommand("Update Etkinlikler SET KategoriID=@KategoriID,KategoriKiloID=@KategoriKiloID,Secili=1 Where SporcuID=@id", baglanti)) { cmd1.Parameters.AddWithValue("@KategoriID", (row.FindControl("ddlKategori") as DropDownList).SelectedValue.ToString()); cmd1.Parameters.AddWithValue("@KategoriKiloID", (row.FindControl("ddlKategoriYas") as DropDownList).SelectedValue.ToString()); cmd1.Parameters.AddWithValue("@id", key); baglanti.Open(); cmd1.ExecuteNonQuery(); } } }
Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...