Kodumdaki Hatayı Nasıl Düzeltebilirim?

25 Mar 2019
71
19
Herkese hayırlı akşamlar arkadaşlar.

visual studio üzerinde bir çalışma yapıyorum ve bu yapmış olduğum çalışmayı da sql aracılığı ile gerçekleştiriyorum yapmış olduğum veri tabanını visual studioda projeme ekledim. Yapmış olduğum projede Perid kısmında sayılar ardaşık olarak gitmiyor 1,2,3,4,5' e kadar düzgün ama ondan sonra 6 gelmesi gerekirken 7 geliyor bu hatayı düzeltmek adına Perİd'leri sıfırlayarak yeniden güncellemeyi denedim kodum çalışıyor ama istemiş olduğum sonucu alamıyorum bu konuda yardımcı olabilir misiniz ?



C#:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;



namespace Personel_Kayit_Ekrani
{
    public partial class Form1 : Form
    {
        void SiraNumaralandirma()
        {
            string connectionString = "Data Source=MCAN\\SQLEXPRESS;Initial Catalog=PersonelVeriTabani;Integrated Security=True;";

            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                string queryUpdate = @"
            WITH CTE AS
            (
                SELECT Perid, ROW_NUMBER() OVER(ORDER BY Perid) AS NewPerid
                FROM Tbl_Personel
            )
            UPDATE Tbl_Personel
            SET Perid = CTE.NewPerid
            FROM Tbl_Personel
            INNER JOIN CTE ON Tbl_Personel.Perid = CTE.Perid";

                SqlCommand commandUpdate = new SqlCommand(queryUpdate, connection);

                try
                {
                    connection.Open();

                    // Perid değerlerini güncelle
                    int rowsAffected = commandUpdate.ExecuteNonQuery();
                    Console.WriteLine("Perid değerleri başarıyla güncellendi. Güncellenen satır sayısı: " + rowsAffected);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Hata: " + ex.Message);
                }
            }
        }

        public Form1()
        {
            InitializeComponent();
          
        }


        void temizle()
        {
            Perid.Text = "";
            PerAd.Text = "";
            PerSoyad.Text = "";
            PerSehir.Text = "";
            PerMeslek.Text = "";
            PerMaas.Text = "";
            radioButton1.Checked = false;
            radioButton2.Checked = false;
            PerAd.Focus();
        }

        SqlConnection baglanti = new SqlConnection("Data Source=MCAN\\SQLEXPRESS;Initial Catalog=PersonelVeriTabani;Integrated Security=True;Encrypt=True;TrustServerCertificate=true");

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: Bu kod satırı 'personelVeriTabaniDataSet4.Tbl_Personel' tablosuna veri yükler. Bunu gerektiği şekilde taşıyabilir, veya kaldırabilirsiniz.
                  
        }

        private void Listele_Click(object sender, EventArgs e)
        {
            this.tbl_PersonelTableAdapter3.Fill(this.personelVeriTabaniDataSet4.Tbl_Personel);

            {
                // Veritabanı bağlantısını aç
                baglanti.Open();

                // Veritabanından tüm kayıtları Perid sütununa göre küçükten büyüğe sıralayan SQL sorgusunu oluştur
                SqlCommand komutListele = new SqlCommand("SELECT * FROM Tbl_Personel ORDER BY Perid ASC", baglanti);

                // Sorguyu çalıştırıp veri okuyucuyu oluştur
                SqlDataReader readerListele = komutListele.ExecuteReader();

                // DataTable oluştur
                DataTable dataTable = new DataTable();
                dataTable.Load(readerListele);

                // DataGridView'in veri kaynağını ayarla
                dataGridView1.DataSource = dataTable;

                // Veri okuyucuyu ve veritabanı bağlantısını kapat
                readerListele.Close();
                baglanti.Close();

                SiraNumaralandirma();
            }



        }

        private void Kaydet_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            SqlCommand komut = new SqlCommand("insert into Tbl_Personel(PerAd,PerSoyad,PerSehir,PerMaas,PerMeslek) values (@p1,@p2,@p3,@p4,@p5)", baglanti);
            komut.Parameters.AddWithValue("@p1", PerAd.Text);
            komut.Parameters.AddWithValue("@p2", PerSoyad.Text);
            komut.Parameters.AddWithValue("@p3", PerSehir.Text);
            komut.Parameters.AddWithValue("@p4", PerMaas.Text);
            komut.Parameters.AddWithValue("@p5", PerMeslek.Text);
            komut.ExecuteNonQuery();
            baglanti.Close();
            MessageBox.Show("Personel Eklendi");
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton1.Checked == true)
            {
                label9.Text = "True";
            }
        }

        private void Temizle_Click(object sender, EventArgs e)
        {
            temizle();
        }

        private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            int secilen = dataGridView1.SelectedCells[0].RowIndex;

            Perid.Text = dataGridView1.Rows[secilen].Cells[0].Value.ToString();
            PerAd.Text = dataGridView1.Rows[secilen].Cells[1].Value.ToString();
            PerSoyad.Text = dataGridView1.Rows[secilen].Cells[2].Value.ToString();
            PerSehir.Text = dataGridView1.Rows[secilen].Cells[3].Value.ToString();
            PerMaas.Text = dataGridView1.Rows[secilen].Cells[4].Value.ToString();
            label9.Text = dataGridView1.Rows[secilen].Cells[5].Value.ToString();
            PerMeslek.Text = dataGridView1.Rows[secilen].Cells[6].Value.ToString();
        }

        private void label9_TextChanged(object sender, EventArgs e)
        {
            if (label9.Text == "True")
            {
                radioButton1.Checked = true;
            }
            if (label9.Text == "False")
            {
                radioButton2.Checked = true;
            }
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if (radioButton2.Checked == false)
            {
                label9.Text = "true";
            }
        }

        private void Sil_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            SqlCommand komutsil = new SqlCommand("Delete From Tbl_Personel Where Perid=@k1", baglanti);
            komutsil.Parameters.AddWithValue("@k1", Perid.Text);
            komutsil.ExecuteNonQuery();
            baglanti.Close();
            MessageBox.Show("Kayıt silindi");
        }

        private void Güncelle_Click(object sender, EventArgs e)
        {
            baglanti.Open();
            SqlCommand komutguncelle = new SqlCommand("Update Tbl_Personel Set PerAd=@a1,PerSoyad=@a2,PerSehir=@a3,PerDurum=@a4,PerMaas=@a5,PerMeslek=@a6 where Perid=@a7", baglanti);
            komutguncelle.Parameters.AddWithValue("@a1", PerAd.Text);
            komutguncelle.Parameters.AddWithValue("@a2", PerSoyad.Text);
            komutguncelle.Parameters.AddWithValue("@a3", PerSehir.Text);
            komutguncelle.Parameters.AddWithValue("@a4", label9.Text);
            komutguncelle.Parameters.AddWithValue("@a5", PerMaas.Text);
            komutguncelle.Parameters.AddWithValue("@a6", PerMeslek.Text);
            komutguncelle.Parameters.AddWithValue("@a7", Perid.Text);
            komutguncelle.ExecuteNonQuery();
            MessageBox.Show("Personel bilgisi güncellendi");

            baglanti.Close();
        }

        private void İstatistik_Click(object sender, EventArgs e)
        {
            Frmistatistik fr = new Frmistatistik();
            fr.Show();
        }

        private void Bul_Click(object sender, EventArgs e)
        {
            // Veritabanı bağlantısını aç
            baglanti.Open();

            // Veritabanından PerAd sütununda arama yapan SQL sorgusunu oluştur
            SqlCommand komutbul = new SqlCommand("SELECT * FROM Tbl_Personel WHERE PerAd LIKE '%" + textBox1.Text + "%' ORDER BY Perid ASC", baglanti);

            // Sorguyu çalıştırıp veri okuyucuyu oluştur
            SqlDataReader readerbul = komutbul.ExecuteReader();

            // DataTable oluştur
            DataTable dataTable = new DataTable();
            dataTable.Load(readerbul);

            // DataGridView'in veri kaynağını ayarla
            dataGridView1.DataSource = dataTable;

            // Veri okuyucuyu ve veritabanı bağlantısını kapat
            readerbul.Close();
            baglanti.Close();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            SiraNumaralandirma();
        }
    }
}


Kod bloğumun tamamı burada yardımcı olabilir misiniz
 
Moderatör tarafında düzenlendi:

LordSUCCESS

Uzman üye
17 Eyl 2023
1,349
624
C#:
private void Kaydet_Click(object sender, EventArgs e)
{
    baglanti.Open();
    SqlCommand komut = new SqlCommand("insert into Tbl_Personel(PerAd,PerSoyad,PerSehir,PerMaas,PerMeslek) values (@p1,@p2,@p3,@p4,@p5)", baglanti);
    komut.Parameters.AddWithValue("@p1", PerAd.Text);
    komut.Parameters.AddWithValue("@p2", PerSoyad.Text);
    komut.Parameters.AddWithValue("@p3", PerSehir.Text);
    komut.Parameters.AddWithValue("@p4", PerMaas.Text);
    komut.Parameters.AddWithValue("@p5", PerMeslek.Text);
    komut.ExecuteNonQuery();
    baglanti.Close();
    MessageBox.Show("Personel Eklendi");

    // Kayıt eklendikten sonra sıralama işlemini yap
    SiraNumaralandirma();
}

private void Listele_Click(object sender, EventArgs e)
{
    // Veritabanı bağlantısını aç
    baglanti.Open();

    // Veritabanından tüm kayıtları Perid sütununa göre küçükten büyüğe sıralayan SQL sorgusunu oluştur
    SqlCommand komutListele = new SqlCommand("SELECT * FROM Tbl_Personel ORDER BY Perid ASC", baglanti);

    // Sorguyu çalıştırıp veri okuyucuyu oluştur
    SqlDataReader readerListele = komutListele.ExecuteReader();

    // DataTable oluştur
    DataTable dataTable = new DataTable();
    dataTable.Load(readerListele);

    // DataGridView'in veri kaynağını ayarla
    dataGridView1.DataSource = dataTable;

    // Veri okuyucuyu ve veritabanı bağlantısını kapat
    readerListele.Close();
    baglanti.Close();
}
Düzeltildi :)
 

LordSUCCESS

Uzman üye
17 Eyl 2023
1,349
624
Ne yaptığını anlatabilir misin ?
Bu kod, bir Windows Forms uygulamasında veritabanı ile etkileşim sağlamak için kullanılan temel işlevleri içerir. Kaydet_Click metodunda yeni bir kayıt eklenirken, Listele_Click metodunda mevcut kayıtların listelenmesi sağlanır. Her iki metod da veritabanı işlemlerini gerçekleştirirken, kullanıcıya uygun mesajlar gösterilir ve gerektiğinde Perid sütunu güncellenir.

Hocam sorun aynı şekilde devam ediyor çözülmedi ne yazıkki
Yapay zekaya kodunu ver sonra sorununu anlat
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.