C# şifremi unuttum kısmı nasıl yapılır?

KS
KS
Antares

Antares

Hectopat
Katılım
6 Ağustos 2016
Mesajlar
664
Makaleler
1
Çözümler
1
using den önce baglanti.Open(); yazıp deneyin.
1653753162632.png

1653754422661.png

Hocam birde burada başlangıç tarihi ve bitiş tarihini seçtiğim zaman o aralıktaki satışlar gözüküyor. İstediğim belirttiğim tarih aralığında yapılan satışların tutarını toplayıp TextBoxa yazdırmak. Yardımcı olabilir misiniz? O sayfaya ait kodlama;
OleDbConnection baglanti;

OleDbDataAdapter da;


void kisilistele()
{
baglanti = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Veritabani/kafe.mdb");
baglanti.Open();
da = new OleDbDataAdapter("SELECT * FROM Satislar", baglanti);
DataTable tablo = new DataTable();
da.Fill(tablo);
gridSatislar.DataSource = tablo;
baglanti.Close();
}

private void groupBox2_Enter(object sender, EventArgs e)
{
//kisilistele();
}

private void frmSatislar_Load(object sender, EventArgs e)
{
kisilistele();
dateTimePicker1.Format = DateTimePickerFormat.Custom;
dateTimePicker1.CustomFormat = "yyyy/MM/dd HH:mm";

dateTimePicker2.Format = DateTimePickerFormat.Custom;
dateTimePicker2.CustomFormat = "yyyy/MM/dd HH:mm";

dateTimePicker1.Value = DateTime.Now.AddDays(-7);
dateTimePicker2.Value = DateTime.Now;

dateTimePicker1_ValueChanged(null, null);
}

private void txtMasaNo_TextChanged(object sender, EventArgs e)
{
dateTimePicker1_ValueChanged(null, null);
}



private void txtMasaNo_KeyPress(object sender, KeyPressEventArgs e)
{
kontroller.txtSayiKontrol(e);
}
private void gridSatislar_CellClick(object sender, DataGridViewCellEventArgs e)
{
gridSatisDetayUrun.DataSource = Veritabani.VeriGetir(" Select * from SatisDetayUrun where SiparisNo = " + gridSatislar.SelectedRows[0].Cells[5].Value + "");





}

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
if (txtMasaNo.Text == "")
{
DataTable dt = Veritabani.VeriGetir("select * from Satislar where Tarih >= #" + dateTimePicker1.Text + "# and Tarih <= #" + dateTimePicker2.Text + "# ");
gridSatislar.DataSource = dt;
}
else
{
DataTable dt = Veritabani.VeriGetir("select * from Satislar where [Masa Numarası] = " + txtMasaNo.Text + " and Tarih >= #" + dateTimePicker1.Text + "# and Tarih <= #" + dateTimePicker2.Text + "# ");
gridSatislar.DataSource = dt;
}
}

private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
dateTimePicker1_ValueChanged(null, null);
}
 
Son düzenleme:

Diego

Decapat
Katılım
30 Temmuz 2019
Mesajlar
43
Çözümler
1
if (txtMasaNo.Text == "")
{
DataTable dt = Veritabani.VeriGetir("select * from Satislar where Tarih >= #" + dateTimePicker1.Text + "# and Tarih <= #" + dateTimePicker2.Text + "# ");
gridSatislar.DataSource = dt;

bu kısmın altına şunu ekleyip deneyin.

double toplam = 0;
foreach (DataGridViewRow row in gridSatislar.Rows)
{

var tutar = double.Parse(row.Cells[3].Value.ToString());

toplam += tutar;
}
textboxKazanc.Text = toplam.ToString();



row.cell[3] tutar kısmını belirtiyor hata verebilir yine de bir deneyin.
 
KS
KS
Antares

Antares

Hectopat
Katılım
6 Ağustos 2016
Mesajlar
664
Makaleler
1
Çözümler
1
bu kısmın altına şunu ekleyip deneyin.





row.cell[3] tutar kısmını belirtiyor hata verebilir yine de bir deneyin.
Hocam kodlama doğru sadece if-else yapının dışında çalıştı teşekkürler.
Hocam kodlama doğru sadece if-else yapının dışında çalıştı teşekkürler.
Hocam bu sayfa ilk açılış ekranı bu sayfada admin bilgilerini girdirip veritabanına kaydettiriyorum daha sonra ana program ekranını açtırıyorum. Bu ekranın sadece programı setup ile kurduktan sonra sadece bir kere yazılımın ilk açılışında gelmesini istiyorum. Yani kurulumdan sonra admin kendine kullanıcı adı vs. belirleyecek. Bunu nasıl yaparım?
1653757816839.png
 
Son düzenleme:

Diego

Decapat
Katılım
30 Temmuz 2019
Mesajlar
43
Çözümler
1
frmilkgiris kod kısmına vertabanın da aşağıdaki yerde "InitializeComponent();" herhangi bir kullanıcı var mı kontrolu yap yani dönen kayıt sayısı 0 değil ise formu gizle veya kapat.

public frmilkgiris()
{
//burada dene
InitializeComponent();
//burada dene

}


Program.cs de ilk açılış ekranı bu mu, bu ise this.Hide() kullan
Program.cs de ilk açılış ekranı ana pencerense ve sonra bu açılıyorsa this.Close(); olarak kapat.
 
KS
KS
Antares

Antares

Hectopat
Katılım
6 Ağustos 2016
Mesajlar
664
Makaleler
1
Çözümler
1
frmilkgiris kod kısmına vertabanın da aşağıdaki yerde "InitializeComponent();" herhangi bir kullanıcı var mı kontrolu yap yani dönen kayıt sayısı 0 değil ise formu gizle veya kapat.

public frmilkgiris()
{
//burada dene
InitializeComponent();
//burada dene

}


Program.cs de ilk açılış ekranı bu mu, bu ise this.Hide() kullan
Program.cs de ilk açılış ekranı ana pencerense ve sonra bu açılıyorsa this.Close(); olarak kapat.
Hocam dediğiniz şekilde uğraştım fakat yapamadım maalesef.
 

Diego

Decapat
Katılım
30 Temmuz 2019
Mesajlar
43
Çözümler
1
Önceki sayfadaki sorgu gibi select sorgusu denedin olmadı mı ?

Örnek, veritabanın da kayıt varsa admin kayıt penceresini gizlesin;

OleDbConnection Veritani_Baglantisi = "xxxxx";
OleDbCommand cmd = new OleDbCommand("select * from Admin", Veritani_Baglantisi);

baglanti.Open();
using (OleDbDataReader varMi = cmd.ExecuteReader())
{

if (varMi.HasRows)
{
this.Hide();
}

}
baglanti.Close();
 

Diego

Decapat
Katılım
30 Temmuz 2019
Mesajlar
43
Çözümler
1
Yöntem değiştir, kurulduktan sonra ana ekranın açılsın ana ekranın Form_Load kısmında ilk alana yaz kodlarını böylesi daha iyi.

ShowDialog(); kullan.



Şöyle;
private void anapencere_Load(object sender, EventArgs e)
{
OleDbConnection Veritani_Baglantisi = "xxxxx";
OleDbCommand cmd = new OleDbCommand("select * from Admin", Veritani_Baglantisi);

baglanti.Open();
using (OleDbDataReader varMi = cmd.ExecuteReader())
{

if (!varMi.HasRows)
{
frmilkGiris ac = new frmilkGiris();
ac.ShowDialog();
}

}
baglanti.Close();
}
 
Yukarı