• 0216 488 01 91
  • destek@sonsuzbilgi.com.tr

Restoran Web Siteniz Olsun!

Üstelik QR Kod Menü Sistemi de Hediyemiz.

Sınırsız Menü, Sınırsız Yemek, SSL Sertifikası, Full Mobil Uyumlu, Full SEO Uyumlu
ve Daha bir çok özellik. Bugün kullanmaya başlayın.


C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?

Adı : C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?

C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?
Randevuları takip etmek, planlamak, organize etmek ve hatırlatmalar yapmak birçok kişinin yaptığı bir eylemdir. Bu sebeple bu konu hakkında bir C# Windows Forms uygulaması yapmak oldukça faydalı olabilir. Basit bir randevu takvimi uygulaması, kullanıcıların randevularını oluşturmasını, düzenlemesini, silmesini ve tarih ve saatlerde uyarılar almasını sağlar.
1. Adım: Projenin Oluşturulması
İlk olarak, Visual Studio’yu açın ve yeni bir proje oluşturun. Projeniz için bir isim belirleyin. Ardından, şablon olarak Windows Forms Uygulamasını seçin ve oluşturun.
2. Adım: Formlar Oluşturma
Oluşturulan projede iki form kullanılacak. Bunlardan birincisi, randevuların listeleneceği ana form olacak. İkincisi ise randevu eklenmesi veya düzenlenmesi için kullanılan form olacak.
Ana form için “Form1.cs”, ikinci form için ise “RandevuForm.cs” adlarında yeni formlar oluşturun.
3. Adım: Veritabanı
Veritabanı hazırlanması için ilk olarak, bir veri tabanı oluşturabilirsiniz. Oluşturulabilecek veritabanları arasında “Microsoft Access” (ACCDB) veya “Microsoft SQL Server” gibi veri tabanları bulunur.
Bu örnekte, Microsoft Access kullanacağız. Öncelikle “Solution Explorer” bölümüne gidin ve projemize sağ tıklayın. Açılan menüden “Add” -> “New Item” seçeneğini seçin.
Açılan ekrandan, “Data” kategorisinde “Access Database” seçeneğini seçin. Bir isim verin ve tamamlayın. Yeni yapılan veri tabanı örnek olarak appoinments_db.accdb adıyla kaydedilmiştir.
4. Adım: Veri Tabanına Bağlanma
Projenin bir veri tabanına bağlanabilmesi için OleDbConnection sınıfı kullanılabilir. “OleDbConnection” sınıfına bağlantı dizesi ile veri tabanlarımıza erişebiliriz.
5. Adım: Form Tasarımı
Tasarım görünümü için “Form1.cs” ve “RandevuForm.cs” form formlarını tasarım görünümünde açın. Randevu takvimini tasarlamak için, kullanıcıların randevuların tarih ve saatlerini girdiği bir takvim ekranına ihtiyacımız var.
Tasarımda veritabanı tablosu oluşturulur. Bu tabloda, verilerin depolanacağı alanlar belirtilecektir. İlk olarak, “Data Sources” altında sağ tıklayın ve “Add New Data Source” seçeneğini seçin. Bu, veriler için oluşturacağımız varsayılan veri kaynağını tanımlar. Açılan pencereden “Database” seçeneğini seçin ve “Continue” düğmesini tıklayın.
Yeni bir veritabanı kaynağı için, “New Connection” butonuna tıklayın. Sunucu adı veya dosya adı hakkında bilgi girin ve “Test Connection” butonunu tıklayarak bağlantıyı kontrol edin.
Bağlantı başarılı olduktan sonra, “OK” düğmesine tıklayın ve veri kaynağı düzenleme ekranına geçin. Hedef tablo seçeneğini seçin ve “Finish” butonunu tıklayın.
Bu işlemler sonrası tasarımın veri kaynağı hazır hale gelir ve tablodaki veriler alanlarına otomatik olarak yerleştirilir.
6. Adım: Kodlama
Kodlama işlemini yapmadan önce gerekli kütüphaneleri ekleyin. Eklemek için, “Solution Explorer” bölümünde ise “References” seçeneğini görürsünüz. Bu örnekte, sistem saat belirlemek için “System.DirectoryServices.AccountManagement” ve “System.Windows.Forms” kütüphanelerinin kullanılmıştır.
Takvim için kodlama işlemlerine geçiyoruz. Formda takvim kullanmak için “MonthCalendar” öğesini kullanacağız.
Form1.cs:
```
using System.Windows.Forms;
using System.Data.OleDb;
using System.Drawing;
using System;
namespace AppointmentCalendar
{
public partial class Form1 :Form
{
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Form yüklenirken verileri listleme
OleDbDataAdapter da = new OleDbDataAdapter(\"SELECT * FROM tbl_appointment\", conn);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
// Tarihe göre randevuların çekilmesi
conn.Open();
cmd.Connection = conn;
cmd.CommandText = \"SELECT * FROM tbl_appointment WHERE appointment_date = #\" + monthCalendar1.SelectionStart.Date.ToShortDateString() + \"#\";
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
conn.Close();
}
// Randevu silmek için buton
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
conn.Open();
cmd.CommandText = \"DELETE FROM tbl_appointment WHERE id=\"+id+\"\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu Silindi.\");
}
else
{
MessageBox.Show(\"Seçilen bir satır yok.\");
}
}
//Yeni randevu eklemek için buton
private void button1_Click(object sender, EventArgs e)
{
RandevuForm frm = new RandevuForm(this);
frm.MdiParent = this.MdiParent;
frm.Show();
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
button2.Enabled = true;
}
public void FillDataGridView()
{
// Verilerin listlenmesi
OleDbDataAdapter da = new OleDbDataAdapter(\"SELECT * FROM tbl_appointment\", conn);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
```
RandevuForm.cs:
```
using System.Drawing;
using System.Windows.Forms;
using System.Data.OleDb;
namespace AppointmentCalendar
{
public partial class RandevuForm : Form
{
Form1 parentFrom = null;
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
string mode = \"\";
public RandevuForm(Form1 frm)
{
parentFrom = frm;
InitializeComponent();
}
private void RandevuForm_Load(object sender, EventArgs e)
{
conn.ConnectionString = @\"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\appoinments_db.accdb\";
cmd.Connection = conn;
//form eklenme modunda
if (parentFrom != null && parentFrom.dataGridView1.SelectedRows.Count == 0)
mode = \"INSERT\";
else // Düzenleme modunda
{
mode = \"UPDATE\";
textBox1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
richTextBox1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
dateTimePicker1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
dateTimePicker2.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
}
}
private void button1_Click(object sender, EventArgs e)
{
// Randevu eklemek veya düzenlemek için
if (mode == \"INSERT\")
{
conn.Open();
cmd.CommandText = \"INSERT INTO tbl_appointment (name,description,appointment_date, appointment_time) VALUES('\" + textBox1.Text + \"', '\" + richTextBox1.Text + \"', '#\" + dateTimePicker1.Text + \"#','\" + dateTimePicker2.Text + \"')\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu eklendi.\");
}
else if (mode == \"UPDATE\")
{
int id = Convert.ToInt32(parentFrom.dataGridView1.SelectedRows[0].Cells[0].Value);
conn.Open();
cmd.CommandText = \"UPDATE tbl_appointment SET name = '\" + textBox1.Text + \"',[description]='\" + richTextBox1.Text + \"',appointment_date=#\" + dateTimePicker1.Text + \"#,appointment_time='\" + dateTimePicker2.Text + \"' WHERE id=\" + id + \"\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu güncelleme tamamlandı.\");
}
parentFrom.FillDataGridView();
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
```
7. Adım: Sık Sorulan Sorular
S: Takvim ve randevular neden birbirini kontrol etmiyor?
C: Bu örnek uygulamada, takvimdeki randevular belirli bir tarihe göre listelenir. Ancak, takvim randevuları kontrol etmez. Randevuları kontrol etmek için özellikle bir kütüphane kullanabilirsiniz.
S: Özel bir hatırlatma ekleyebilir miyiz?
C: Bu örnekte, özel bir hatırlatma eklemek için kodlanmamıştır. Ancak, zaman ayarı için “System.Timers.Timer” sınıfı kullanılabilir.
S: Uygulama neden birden çok dilde değil?
C: Bu örnek uygulamada tek bir dilde hazırlanmıştır. Birden fazla dil için özel bir kodlanma olmalıdır.
S: Uygulamanın kullanım süresi ne kadar?
C: Uygulamanın kullanım süresi, uygulamanın karmaşıklığına ve kullanıcının tecrübesine bağlı olarak değişir. Ancak, bu örnekteki uygulamanın kullanım süresi genellikle birkaç saat ile sınırlı olmalıdır.
S: Uygulama hakkında yardım alabileceğim yer var mı?
C: Bu örnekte kullanılan kütüphaneler ve yapılar, Microsoft tarafından sağlanan ve resmi olarak desteklenen özelliklerdir. Microsoft Dokümantasyonundan yardım alabilirsiniz.
S: Uygulama nasıl test edilir?
C: Bu programın doğru çalışması için, Visual Studio veya benzer bir platformda çalıştırılmalıdır. Herhangi bir programlama hatası veya bağlantı hatası olup olmadığını kontrol etmek için program hata ayıklama araçlarını kullanabilirsiniz.

C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?

Adı : C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?

C# Windows Forms ile Basit Bir Randevu Takvimi Uygulaması Nasıl Yapılır?
Randevuları takip etmek, planlamak, organize etmek ve hatırlatmalar yapmak birçok kişinin yaptığı bir eylemdir. Bu sebeple bu konu hakkında bir C# Windows Forms uygulaması yapmak oldukça faydalı olabilir. Basit bir randevu takvimi uygulaması, kullanıcıların randevularını oluşturmasını, düzenlemesini, silmesini ve tarih ve saatlerde uyarılar almasını sağlar.
1. Adım: Projenin Oluşturulması
İlk olarak, Visual Studio’yu açın ve yeni bir proje oluşturun. Projeniz için bir isim belirleyin. Ardından, şablon olarak Windows Forms Uygulamasını seçin ve oluşturun.
2. Adım: Formlar Oluşturma
Oluşturulan projede iki form kullanılacak. Bunlardan birincisi, randevuların listeleneceği ana form olacak. İkincisi ise randevu eklenmesi veya düzenlenmesi için kullanılan form olacak.
Ana form için “Form1.cs”, ikinci form için ise “RandevuForm.cs” adlarında yeni formlar oluşturun.
3. Adım: Veritabanı
Veritabanı hazırlanması için ilk olarak, bir veri tabanı oluşturabilirsiniz. Oluşturulabilecek veritabanları arasında “Microsoft Access” (ACCDB) veya “Microsoft SQL Server” gibi veri tabanları bulunur.
Bu örnekte, Microsoft Access kullanacağız. Öncelikle “Solution Explorer” bölümüne gidin ve projemize sağ tıklayın. Açılan menüden “Add” -> “New Item” seçeneğini seçin.
Açılan ekrandan, “Data” kategorisinde “Access Database” seçeneğini seçin. Bir isim verin ve tamamlayın. Yeni yapılan veri tabanı örnek olarak appoinments_db.accdb adıyla kaydedilmiştir.
4. Adım: Veri Tabanına Bağlanma
Projenin bir veri tabanına bağlanabilmesi için OleDbConnection sınıfı kullanılabilir. “OleDbConnection” sınıfına bağlantı dizesi ile veri tabanlarımıza erişebiliriz.
5. Adım: Form Tasarımı
Tasarım görünümü için “Form1.cs” ve “RandevuForm.cs” form formlarını tasarım görünümünde açın. Randevu takvimini tasarlamak için, kullanıcıların randevuların tarih ve saatlerini girdiği bir takvim ekranına ihtiyacımız var.
Tasarımda veritabanı tablosu oluşturulur. Bu tabloda, verilerin depolanacağı alanlar belirtilecektir. İlk olarak, “Data Sources” altında sağ tıklayın ve “Add New Data Source” seçeneğini seçin. Bu, veriler için oluşturacağımız varsayılan veri kaynağını tanımlar. Açılan pencereden “Database” seçeneğini seçin ve “Continue” düğmesini tıklayın.
Yeni bir veritabanı kaynağı için, “New Connection” butonuna tıklayın. Sunucu adı veya dosya adı hakkında bilgi girin ve “Test Connection” butonunu tıklayarak bağlantıyı kontrol edin.
Bağlantı başarılı olduktan sonra, “OK” düğmesine tıklayın ve veri kaynağı düzenleme ekranına geçin. Hedef tablo seçeneğini seçin ve “Finish” butonunu tıklayın.
Bu işlemler sonrası tasarımın veri kaynağı hazır hale gelir ve tablodaki veriler alanlarına otomatik olarak yerleştirilir.
6. Adım: Kodlama
Kodlama işlemini yapmadan önce gerekli kütüphaneleri ekleyin. Eklemek için, “Solution Explorer” bölümünde ise “References” seçeneğini görürsünüz. Bu örnekte, sistem saat belirlemek için “System.DirectoryServices.AccountManagement” ve “System.Windows.Forms” kütüphanelerinin kullanılmıştır.
Takvim için kodlama işlemlerine geçiyoruz. Formda takvim kullanmak için “MonthCalendar” öğesini kullanacağız.
Form1.cs:
```
using System.Windows.Forms;
using System.Data.OleDb;
using System.Drawing;
using System;
namespace AppointmentCalendar
{
public partial class Form1 :Form
{
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Form yüklenirken verileri listleme
OleDbDataAdapter da = new OleDbDataAdapter(\"SELECT * FROM tbl_appointment\", conn);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
{
// Tarihe göre randevuların çekilmesi
conn.Open();
cmd.Connection = conn;
cmd.CommandText = \"SELECT * FROM tbl_appointment WHERE appointment_date = #\" + monthCalendar1.SelectionStart.Date.ToShortDateString() + \"#\";
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
conn.Close();
}
// Randevu silmek için buton
private void button2_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
conn.Open();
cmd.CommandText = \"DELETE FROM tbl_appointment WHERE id=\"+id+\"\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu Silindi.\");
}
else
{
MessageBox.Show(\"Seçilen bir satır yok.\");
}
}
//Yeni randevu eklemek için buton
private void button1_Click(object sender, EventArgs e)
{
RandevuForm frm = new RandevuForm(this);
frm.MdiParent = this.MdiParent;
frm.Show();
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
button2.Enabled = true;
}
public void FillDataGridView()
{
// Verilerin listlenmesi
OleDbDataAdapter da = new OleDbDataAdapter(\"SELECT * FROM tbl_appointment\", conn);
System.Data.DataTable dt = new System.Data.DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
}
}
```
RandevuForm.cs:
```
using System.Drawing;
using System.Windows.Forms;
using System.Data.OleDb;
namespace AppointmentCalendar
{
public partial class RandevuForm : Form
{
Form1 parentFrom = null;
OleDbConnection conn = new OleDbConnection();
OleDbCommand cmd = new OleDbCommand();
string mode = \"\";
public RandevuForm(Form1 frm)
{
parentFrom = frm;
InitializeComponent();
}
private void RandevuForm_Load(object sender, EventArgs e)
{
conn.ConnectionString = @\"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\appoinments_db.accdb\";
cmd.Connection = conn;
//form eklenme modunda
if (parentFrom != null && parentFrom.dataGridView1.SelectedRows.Count == 0)
mode = \"INSERT\";
else // Düzenleme modunda
{
mode = \"UPDATE\";
textBox1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
richTextBox1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
dateTimePicker1.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
dateTimePicker2.Text = parentFrom.dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
}
}
private void button1_Click(object sender, EventArgs e)
{
// Randevu eklemek veya düzenlemek için
if (mode == \"INSERT\")
{
conn.Open();
cmd.CommandText = \"INSERT INTO tbl_appointment (name,description,appointment_date, appointment_time) VALUES('\" + textBox1.Text + \"', '\" + richTextBox1.Text + \"', '#\" + dateTimePicker1.Text + \"#','\" + dateTimePicker2.Text + \"')\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu eklendi.\");
}
else if (mode == \"UPDATE\")
{
int id = Convert.ToInt32(parentFrom.dataGridView1.SelectedRows[0].Cells[0].Value);
conn.Open();
cmd.CommandText = \"UPDATE tbl_appointment SET name = '\" + textBox1.Text + \"',[description]='\" + richTextBox1.Text + \"',appointment_date=#\" + dateTimePicker1.Text + \"#,appointment_time='\" + dateTimePicker2.Text + \"' WHERE id=\" + id + \"\";
cmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show(\"Randevu güncelleme tamamlandı.\");
}
parentFrom.FillDataGridView();
this.Close();
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
```
7. Adım: Sık Sorulan Sorular
S: Takvim ve randevular neden birbirini kontrol etmiyor?
C: Bu örnek uygulamada, takvimdeki randevular belirli bir tarihe göre listelenir. Ancak, takvim randevuları kontrol etmez. Randevuları kontrol etmek için özellikle bir kütüphane kullanabilirsiniz.
S: Özel bir hatırlatma ekleyebilir miyiz?
C: Bu örnekte, özel bir hatırlatma eklemek için kodlanmamıştır. Ancak, zaman ayarı için “System.Timers.Timer” sınıfı kullanılabilir.
S: Uygulama neden birden çok dilde değil?
C: Bu örnek uygulamada tek bir dilde hazırlanmıştır. Birden fazla dil için özel bir kodlanma olmalıdır.
S: Uygulamanın kullanım süresi ne kadar?
C: Uygulamanın kullanım süresi, uygulamanın karmaşıklığına ve kullanıcının tecrübesine bağlı olarak değişir. Ancak, bu örnekteki uygulamanın kullanım süresi genellikle birkaç saat ile sınırlı olmalıdır.
S: Uygulama hakkında yardım alabileceğim yer var mı?
C: Bu örnekte kullanılan kütüphaneler ve yapılar, Microsoft tarafından sağlanan ve resmi olarak desteklenen özelliklerdir. Microsoft Dokümantasyonundan yardım alabilirsiniz.
S: Uygulama nasıl test edilir?
C: Bu programın doğru çalışması için, Visual Studio veya benzer bir platformda çalıştırılmalıdır. Herhangi bir programlama hatası veya bağlantı hatası olup olmadığını kontrol etmek için program hata ayıklama araçlarını kullanabilirsiniz.


Danışmanlık Web Sitesi

Onlarca Danışmanlık Web Sitesinden Biri Mutlaka Size Göre!

*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle


C# Windows Forms randevu takvimi veritabanı bağlantısı ekran tasarımı kodlama kontrol etiketleri takvim kontrolü