C# Seçileni Hesaplama

Katılım
7 Ekim 2019
Mesajlar
135
Excel Vers. ve Dili
Tr 2019
Selamünaleyküm arkadaşlar C#'ta yeniyim destekleriniz için şimdiden teşekkür ederim...
Benim sorum şu:
Access veri tabanında tc no, adı soyadı, izin sayısı şeklinde bi veri tabanı var. Veri tabanında aynı tc no dan izne ayrılan personel var.
Tc:111 adı soyadı:Ali veli İzin gün sayısı: 1
Tc:222 adı soyadı:kamil tek İzin gün sayısı: 2
Tc:333 adı soyadı:murat akar İzin gün sayısı: 3
Tc:111 adı soyadı:Ali veli İzin gün sayısı: 2
Tc:111 adı soyadı:Ali veli İzin gün sayısı: 3
Tc:111 adı soyadı:Ali veli İzin gün sayısı: 4
Textbox1'e 111 nolu tc kimlik numarasını yazacağım Button1'e bastığım zaman Textbox2'ye 111 notu personelin toplam izin sayısı yani:10 yazmasını nasıl sağlarım... şimdiden teşekkür ederim...
 

NBATMAN

Destek Ekibi
Destek Ekibi
Katılım
1 Aralık 2007
Mesajlar
636
Excel Vers. ve Dili
Office 2003 excel Türkçe
Merhaba,

ben vbnet de kod yazabiliyorum. lakin sizin için C# kodlarına çevirdim.

benim örnek için hazırladığım database bilgileri altta resimdeki gibidir. Siz kendinize göre kodlarda organizasyonu yapınız.

251108

kodlar aşağıdaki gibi olmalıdır. siz kendi veritabanı, tablo ve alan adlarınızı kodda ilgili yerler yazmayı unutmayınız.

using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

namespace YourNamespace
{
public partial class Form1 : Form
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
string filePath = Application.StartupPath + "\\İZİNLER.accdb";
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";

public Form1()
{
InitializeComponent();
connectionString += filePath;
}

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
dataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = textBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && result != DBNull.Value)
{
textBox2.Text = result.ToString();
}
else
{
textBox2.Text = "0";
}
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}
}

*************************************ALTERNATİF KOD********************************************************************

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
using System.Data.OleDb;

public class Form1
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
private string filePath = Application.StartupPath + @"\İZİNLER.accdb";
private string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath;

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
DataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = TextBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && !Information.IsDBNull(result))
TextBox2.Text = result.ToString();
else
TextBox2.Text = "0";
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}

251107
 
Son düzenleme:
Katılım
7 Ekim 2019
Mesajlar
135
Excel Vers. ve Dili
Tr 2019
Merhaba,

ben vbnet de kod yazabiliyorum. lakin sizin için C# kodlarına çevirdim.

benim örnek için hazırladığım database bilgileri altta resimdeki gibidir. Siz kendinize göre kodlarda organizasyonu yapınız.

Ekli dosyayı görüntüle 251108

kodlar aşağıdaki gibi olmalıdır. siz kendi veritabanı, tablo ve alan adlarınızı kodda ilgili yerler yazmayı unutmayınız.

using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

namespace YourNamespace
{
public partial class Form1 : Form
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
string filePath = Application.StartupPath + "\\İZİNLER.accdb";
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";

public Form1()
{
InitializeComponent();
connectionString += filePath;
}

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
dataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = textBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && result != DBNull.Value)
{
textBox2.Text = result.ToString();
}
else
{
textBox2.Text = "0";
}
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}
}

*************************************ALTERNATİF KOD********************************************************************

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
using System.Data.OleDb;

public class Form1
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
private string filePath = Application.StartupPath + @"\İZİNLER.accdb";
private string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath;

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
DataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = TextBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && !Information.IsDBNull(result))
TextBox2.Text = result.ToString();
else
TextBox2.Text = "0";
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}

Ekli dosyayı görüntüle 251107





Çok teşekkür ederim deneyeceğim
 
Katılım
7 Ekim 2019
Mesajlar
135
Excel Vers. ve Dili
Tr 2019
Merhaba,

ben vbnet de kod yazabiliyorum. lakin sizin için C# kodlarına çevirdim.

benim örnek için hazırladığım database bilgileri altta resimdeki gibidir. Siz kendinize göre kodlarda organizasyonu yapınız.

Ekli dosyayı görüntüle 251108

kodlar aşağıdaki gibi olmalıdır. siz kendi veritabanı, tablo ve alan adlarınızı kodda ilgili yerler yazmayı unutmayınız.

using System;
using System.Data;
using System.Data.OleDb;
using System.Windows.Forms;

namespace YourNamespace
{
public partial class Form1 : Form
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
string filePath = Application.StartupPath + "\\İZİNLER.accdb";
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=";

public Form1()
{
InitializeComponent();
connectionString += filePath;
}

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
dataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = textBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && result != DBNull.Value)
{
textBox2.Text = result.ToString();
}
else
{
textBox2.Text = "0";
}
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}
}

*************************************ALTERNATİF KOD********************************************************************

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Security;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualBasic;
using System.Data.OleDb;

public class Form1
{
// Access veritabanı dosyasının yolu ve bağlantı dizesi
private string filePath = Application.StartupPath + @"\İZİNLER.accdb";
private string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath;

private void Form1_Load(object sender, EventArgs e)
{
VerileriGoster();
}

private void VerileriGoster()
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT * FROM VERİLER";

// Veri adaptörü ve veri tablosu oluştur
OleDbDataAdapter adapter = new OleDbDataAdapter(query, connection);
DataTable table = new DataTable();

// Veri adaptörü ile verileri doldur
adapter.Fill(table);

// DataGridView1'e veri kaynağını ata
DataGridView1.DataSource = table;

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("Veri gösterme hatası: " + ex.Message);
}
}
}

private void TextBox1_TextChanged(object sender, EventArgs e)
{
// Girilen TCNO bilgisine göre İZİNSAYISI toplamını bul
string tcno = TextBox1.Text.Trim();

if (!string.IsNullOrEmpty(tcno))
{
// Bağlantı oluştur
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
// Bağlantıyı aç
connection.Open();

// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";

// Komut oluştur
using (OleDbCommand command = new OleDbCommand(query, connection))
{
// Parametreleri tanımla ve değerlerini ata
command.Parameters.AddWithValue("@tcno", tcno);

// İZİNSAYISI toplamını al
object result = command.ExecuteScalar();

// İZİNSAYISI toplamını TextBox2'ye yaz
if (result != null && !Information.IsDBNull(result))
TextBox2.Text = result.ToString();
else
TextBox2.Text = "0";
}

connection.Close();
}
catch (Exception ex)
{
// Hata durumunda uyarı göster
MessageBox.Show("İzin sayısı toplamı bulma hatası: " + ex.Message);
}
}
}
}
}

Ekli dosyayı görüntüle 251107



// Sorgu oluştur
string query = "SELECT SUM(İZİNSAYISI) AS TOPLAM_IZIN FROM VERİLER WHERE TCNO = @tcno";


Buradaki TOPLAM_IZIN neyi ifade ediyor anlayamadım

Bir de resminiz çok küçük okuyamadım .

Button1 işlevini kullanmadınız galiba

Bunları açıklayabilir misiniz...
 

NBATMAN

Destek Ekibi
Destek Ekibi
Katılım
1 Aralık 2007
Mesajlar
636
Excel Vers. ve Dili
Office 2003 excel Türkçe
Merhaba,

ben size proje dosyasını göndereyim siz istediğiniz gibi uyarlayınız.

 

Ekli dosyalar

Katılım
7 Ekim 2019
Mesajlar
135
Excel Vers. ve Dili
Tr 2019
Katılım
7 Ekim 2019
Mesajlar
135
Excel Vers. ve Dili
Tr 2019
Yok mu başka yardımcı olabilecek lütfen...
 
Üst