• 14-05-2018, 20:43:53
    #1
    Merhaba Arkadaşlar,

    Şöyle bir sorunum var.Aşağıda VitesTuruID,YakıtTuruID ve RenkID kısımlarına string değilde kendi tablolarındaki idler gelmesi gerek.Veritabanına nasıl kayıt edebilirim idleri?





    Araba_VitesTuruID deki Manuel yerine 6 gelicek.




  • 14-05-2018, 20:50:28
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    araba_vitesturuid integer ve iki tabloyu bağladığın için ismini mi çekiyor oradan ?
    c# ile ekleme yaparken string olarak mı ekliyosun ? yoksa phpmyadmin orada otomatik string şeklinde mi gösteriyor ? eğer öyleyse tabloları bağlarken demekki kendine göre sql ifadesini düzenliyor.
    eğer string ile ekliyorsan "araba_vitesturuid" yi o zaman o kısmı set yaparak integer haline dönüştürmen gerekir.

    sorununu tam anlayabilirsem tam yardımcı olabilirim.
  • 14-05-2018, 20:57:17
    #3
    SLKing adlı üyeden alıntı: mesajı görüntüle
    araba_vitesturuid integer ve iki tabloyu bağladığın için ismini mi çekiyor oradan ?
    c# ile ekleme yaparken string olarak mı ekliyosun ? yoksa phpmyadmin orada otomatik string şeklinde mi gösteriyor ? eğer öyleyse tabloları bağlarken demekki kendine göre sql ifadesini düzenliyor.
    eğer string ile ekliyorsan "araba_vitesturuid" yi o zaman o kısmı set yaparak integer haline dönüştürmen gerekir.

    sorununu tam anlayabilirsem tam yardımcı olabilirim.
    @SLKing; Ben direk isimlerini çekiyorum.İDlerini çketiğimde sadece idleri gözüküyor comboboxta.Key value tarzı birşeyler olması lazım herhalde.Böyle bir Formum var.Misal vites türünü kaydederken değeri(Manuel,Otomatik) değilde direk idlerini kaydetmek istiyorum hocam. Vites Türü Combobox1-Yakıt türü combobox2- Renk combobox3




    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 MySql.Data.MySqlClient;
    
    
    namespace SonAraç
    {
        public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
            }
    
            MySqlConnection baglan = new MySqlConnection("Server=localhost;Database=arac;Uid=root;Pwd='';");
            MySqlCommand komut = new MySqlCommand();
    
            private void label1_Click(object sender, EventArgs e)
            {
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form.ActiveForm.Close();
    
            }
            public void ListeleVites()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_vitesturu";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox1.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox1.Items.Add(dr["Vites_Turu"].ToString());
                }
                baglan.Close();
            }
            public void ListeleYakit()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_yakitturu";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox2.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox2.Items.Add(dr["Yakit_Turu"].ToString());
                }
                baglan.Close();
            }
    
            public void ListeleRenk()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_renk";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox3.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox3.Items.Add(dr[0].ToString()+"/"+ dr[1].ToString());
                }
                baglan.Close();
            }
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void Form3_Load(object sender, EventArgs e)
            {
                ListeleVites();
                ListeleYakit();
                ListeleRenk();
    
            }
    
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    // bağlantıyı açalım
                    baglan.Open();
                    // ekleme komutunu tanımladım ve insert sorgusunu yazdım.
                    MySqlCommand ekle = new MySqlCommand("insert into tbl_araba (Araba_Marka,Araba_Model,Araba_VitesTuruID,Araba_YakitTuruID,Araba_RenkID) values ('" + textBox1.Text + "','" + textBox5.Text + "','" + comboBox1.Text + "','" + comboBox2.Text + "','" + comboBox3.Text + "')", baglan);
                    // sorguyu çalıştırıyorum.
                    object sonuc = null;
                    sonuc = ekle.ExecuteNonQuery(); // sorgu çalıştı ve dönen değer objec türünden değişkene geçti eğer değişken boş değilse eklendi boşşsa eklenmedi.
                    if (sonuc != null)
                        MessageBox.Show("Veri başarıyla eklendi", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    else
                        MessageBox.Show("Veri eklenemedi.", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    // bağlantıyı kapatalım
                    baglan.Close();
                }
                catch (Exception HataYakala)
                {
                    MessageBox.Show("Hata: " + HataYakala.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox5_TextChanged(object sender, EventArgs e)
            {
    
            }
        }
    }
  • 15-05-2018, 03:41:39
    #4
    fatihclkl adlı üyeden alıntı: mesajı görüntüle
    @SLKing; Ben direk isimlerini çekiyorum.İDlerini çketiğimde sadece idleri gözüküyor comboboxta.Key value tarzı birşeyler olması lazım herhalde.Böyle bir Formum var.Misal vites türünü kaydederken değeri(Manuel,Otomatik) değilde direk idlerini kaydetmek istiyorum hocam. Vites Türü Combobox1-Yakıt türü combobox2- Renk combobox3




    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 MySql.Data.MySqlClient;
    
    
    namespace SonAraç
    {
        public partial class Form3 : Form
        {
            public Form3()
            {
                InitializeComponent();
            }
    
            MySqlConnection baglan = new MySqlConnection("Server=localhost;Database=arac;Uid=root;Pwd='';");
            MySqlCommand komut = new MySqlCommand();
    
            private void label1_Click(object sender, EventArgs e)
            {
    
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                Form.ActiveForm.Close();
    
            }
            public void ListeleVites()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_vitesturu";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox1.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox1.Items.Add(dr["Vites_Turu"].ToString());
                }
                baglan.Close();
            }
            public void ListeleYakit()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_yakitturu";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox2.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox2.Items.Add(dr["Yakit_Turu"].ToString());
                }
                baglan.Close();
            }
    
            public void ListeleRenk()
            {
                baglan.Open();
                MySqlCommand komut = baglan.CreateCommand();
                komut.CommandType = CommandType.Text;
                komut.CommandText = "select * from tbl_renk";
                komut.ExecuteNonQuery();
                DataTable dt = new DataTable();
                MySqlDataAdapter da = new MySqlDataAdapter(komut);
                da.Fill(dt);
                comboBox3.Items.Clear();
                foreach (DataRow dr in dt.Rows)
                {
                    comboBox3.Items.Add(dr[0].ToString()+"/"+ dr[1].ToString());
                }
                baglan.Close();
            }
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void Form3_Load(object sender, EventArgs e)
            {
                ListeleVites();
                ListeleYakit();
                ListeleRenk();
    
            }
    
            private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
            {
    
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    // bağlantıyı açalım
                    baglan.Open();
                    // ekleme komutunu tanımladım ve insert sorgusunu yazdım.
                    MySqlCommand ekle = new MySqlCommand("insert into tbl_araba (Araba_Marka,Araba_Model,Araba_VitesTuruID,Araba_YakitTuruID,Araba_RenkID) values ('" + textBox1.Text + "','" + textBox5.Text + "','" + comboBox1.Text + "','" + comboBox2.Text + "','" + comboBox3.Text + "')", baglan);
                    // sorguyu çalıştırıyorum.
                    object sonuc = null;
                    sonuc = ekle.ExecuteNonQuery(); // sorgu çalıştı ve dönen değer objec türünden değişkene geçti eğer değişken boş değilse eklendi boşşsa eklenmedi.
                    if (sonuc != null)
                        MessageBox.Show("Veri başarıyla eklendi", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    else
                        MessageBox.Show("Veri eklenemedi.", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    // bağlantıyı kapatalım
                    baglan.Close();
                }
                catch (Exception HataYakala)
                {
                    MessageBox.Show("Hata: " + HataYakala.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
    
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
    
            }
    
            private void textBox5_TextChanged(object sender, EventArgs e)
            {
    
            }
        }
    }
    comboBox2.Items.Add(dr["Yakit_Turu"].ToString()); bu koduna şöyle yap id diyelim 6 ve manuele tekabül ediyor dr[0] + “-“ dr[1] diye eklet, databaseye eklerken combobox2.text diye ekletmişsin onu da combobox2.text.split(“-“)[0] diye çek
  • 15-05-2018, 04:12:27
    #5
    ComboBox'tan seçim yapıldığında(events) Vites_Turu'na göre aynı tablodan VitesTuruID çekebilirsiniz. Ekleme yaparken de çektiğiniz veriyi gönderin. Veya Vites_Turu çekerken id de çekebilirsiniz, mantığı size kalmış.
  • 15-05-2018, 08:36:30
    #6
    sorunuz cevabi icin . bir presedur olusturun ve o prosedur de 3 tabloyu inner join ile birlestirin.ve bu kadar ugrasmayin
  • 18-05-2018, 16:17:32
    #7
    Üyeliği durduruldu
    Sen comboboxa veri cekerken bir bilgiyi display ile gösteriyorsun fakat aslında onun tabloda bir id si var. Senin o id yide comboboxtan secince getirmen lazım. Ve ondan sonrada CRUD işlemlerinde o nesnenin id sine göre yaptıracaksın.