c# mysql

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
veri okuyabilirim fakat veri ekleyeceğim zaman you have an error in your sql syntax check the manual that corresponds to your mariadb server version for the right syntax use near '*) from tabloadı where tabloalanı ve eklemek istediğim bilgiler bu şekilde hata alıyorum bilgisi olan varsa lütfen yardımcı olabilirmi mysql connector denemediğim sürümü kalmadı
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

yazdığınız sorguyu burada paylaşır mısınız ? Belkide sorguda bir problem vardır.

Saygılar
 

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
öncelikle teşekkür ederim bu saatte ilgilendiğiniz için tabiki buyrun
C#:
 MySqlConnection baglanti = new MySqlConnection(ConfigurationManager.ConnectionStrings["Kobastar_Kantar_V1._8.Properties.Settings.kobast_kantarConnectionString"].ConnectionString);

        private void KullaniciGirisi_Load(object sender, EventArgs e)

        {

            txtad.Text = Settings2.Default.Kullanici;

            txtsifre.Text = Settings2.Default.Sifre;

        }

    

        public string Yetki;

        private void btnGiris_Click(object sender, EventArgs e)

        {

            try

            {

                if (checkBox1.Checked == true)

                {

                    Settings2.Default.Kullanici = txtad.Text;

                    Settings2.Default.Sifre = txtsifre.Text;

                    Settings2.Default.Save();

                }


                if (baglanti.State == ConnectionState.Closed) baglanti.Open();

                bool kontrol = false;

                string giris = "Select * From kullanici Where Kullanici_Adi=@kullanici And Sifre=@sifre";

                MySqlCommand kmtgiris = new MySqlCommand(giris, baglanti);

                kmtgiris.Parameters.AddWithValue("[USER=90516]@kullanici[/USER]", txtad.Text);

                kmtgiris.Parameters.AddWithValue("@sifre", txtsifre.Text);

                MySqlDataReader dr = kmtgiris.ExecuteReader();

                while (dr.Read())

                {

                    Yetki = dr["Yetki"].ToString();

                    kontrol = true;

                }

                baglanti.Close();

                if (kontrol == true)

                {

                    Form1 fr = new Form1();

                    fr.Show();

                    this.Hide();

                }



                else

                {

                    MessageBox.Show("Kullanıcı Adı veya Şifre Hatalı");

                    baglanti.Close();

                }



            }

            catch (Exception Hata)

            {


                MessageBox.Show("Yeniden Dene   " + Hata.Message);

            }

        }

    }

}


---- Mesajlar birleştirildi ----

hata mesajıda tam olarak demo yazan yerlerde tablo içeriği

---- Mesajlar birleştirildi ----

hata mesajıda tam olarak
Untitled-3.jpg
 
Son düzenleyen moderatör:

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

Veridğiniz kodlarda sadece select işlemi yani okuma işlemi var. "Veri ekleyeceğim zaman.." diye yazmışsınız. Herhangi bir insert işlemi göremedim kodlarda ? Yoksa yanlış mı düşünüyorum ?

Eğer aşağıdaki kodlarınızda Select satırında sorun alıyorsanız;

Kod:
string giris = "Select * From kullanici Where Kullanici_Adi=@kullanici And Sifre=@sifre";
MySqlCommand kmtgiris = new MySqlCommand(giris, baglanti);
kmtgiris.Parameters.AddWithValue("@kullanici", txtad.Text);
kmtgiris.Parameters.AddWithValue("@sifre", txtsifre.Text);
MySqlDataReader dr = kmtgiris.ExecuteReader();

bu aşağıdaki sorgu doğru mu ?

"Select * From kullanici Where Kullanici_Adi=@kullanici And Sifre=@sifre";

kullanici tablonuz var, bir de @kullanici değişkeniniz.

Ayrıca eğer bu sorguda hata alıyorsanız lütfen aşağıdaki gibi deneyin test olarak.

Kod:
"Select sütn_adi1, sütun_adi2 From kullanici Where Kullanici_Adi=@kullanici And Sifre=@sifre";

Saygılarımla
 

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
özür dilerim giriş bölümünü gösterdim select kısmında sorun yok
private void Kullanici_Ekle_Load(object sender, EventArgs e)
{
verigetir();
}

private void btnkaydet_Click(object sender, EventArgs e)
{
try
{
if (baglanti.State == ConnectionState.Closed) baglanti.Open();
string varmı = "Select Count (*) From kullanici where Kullanici_Adi=@ad";
MySqlCommand kmtvarmı = new MySqlCommand(varmı, baglanti);
kmtvarmı.Parameters.AddWithValue("@ad", txtad.Text);
if (Convert.ToInt32(kmtvarmı.ExecuteScalar()) != 0)
{
MessageBox.Show("Girdiğiniz Kullanıcı Adında Kayıt Vardır Lütfen Tekrar Deneyiniz!!!");
}

else if (txtad.Text == "" || txtsifre.Text == "")
{
MessageBox.Show("Lütfen Gerekli alanları Doldurunuz!!!");
}

else
{

string kaydet = "INSERT INTO kullanici (Kullanici_Adi,Sifre,Yetki) VALUES (@ad,@sifre,@yetki)";
MySqlCommand kmtkaydet = new MySqlCommand(kaydet, baglanti);
kmtkaydet.Parameters.AddWithValue("ad", txtad.Text);
kmtkaydet.Parameters.AddWithValue("sifre", txtsifre.Text);
kmtkaydet.Parameters.AddWithValue("Yetki", checkBox1.CheckState);
kmtkaydet.ExecuteNonQuery();
MessageBox.Show("Kayıt Başarılı");
baglanti.Close();
verigetir();
txtad.Text = "";
txtsifre.Text = "";



}
}
catch (Exception hata)
{
MessageBox.Show("HATA OLUŞTU " + hata.Message);
baglanti.Close();
}
}

private void btnsil_Click(object sender, EventArgs e)
{
try
{
if (txtad.Text == "" || txtsifre.Text == "")
{
MessageBox.Show("Lütfen Silmek istediğiniz kullanıcıyı Seçiniz!!! ");
}
else
{
DialogResult secenek;
secenek = MessageBox.Show("Kullanıcı Kaydı Silinecek!!! ", "Uyarı", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (secenek == DialogResult.OK)
{

baglanti.Open();
string sil = "Delete From kullanici where ID=@id";
MySqlCommand kmtsil = new MySqlCommand(sil, baglanti);
kmtsil.Parameters.AddWithValue("@id", Convert.ToInt32(txtid.Text));
kmtsil.ExecuteNonQuery();
MessageBox.Show("Kayıt Silindi");
baglanti.Close();
verigetir();
txtid.Text = "";
txtad.Text = "";
txtsifre.Text = "";
}
}


}
catch (Exception Hata)
{

MessageBox.Show("Hata!!! " + Hata.Message);
baglanti.Close();
}
}

private void btnguncelle_Click(object sender, EventArgs e)
{
try
{

if (txtad.Text == "")
MessageBox.Show("Güncelleme yapmak için kullanıcı adı giriniz.");
else
{
baglanti.Open();
MySqlCommand komut = new MySqlCommand();
komut.Connection = baglanti;
string query = "Update kullanici Set Kullanici_Adi='" + txtad.Text + "',Sifre='" + txtsifre.Text + "' Where ID=" + txtid.Text + "";
MessageBox.Show(query);
komut.CommandText = query;
komut.ExecuteNonQuery();
MessageBox.Show("Kayıt Güncellendi");
baglanti.Close();
verigetir();
txtid.Text = "";
txtad.Text = "";
txtsifre.Text = "";
}
}
catch (Exception Hata)
{

MessageBox.Show("Hata Oluştu " + Hata.Message);
}
}

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
txtid.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
txtad.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
txtsifre.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();

}
private void verigetir()
{
baglanti.Open();
string verigetir = "Select ID,Kullanici_Adi,Yetki From kullanici";
MySqlDataAdapter da = new MySqlDataAdapter(verigetir, baglanti);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
baglanti.Close();

}
}
}
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

hata içeriğinde;

Kod:
Kullanici_Adi='demo" -->> Tek tırnak var demonun yanında ! ? MySql de tek tırnak sanırım problem yapar..!

NOT : Diğer bir yandan bu da güvenlik açığıdır bilginize.

Saygılarımla

---- Mesajlar birleştirildi ----

Merhaba,

Kod:
kmtkaydet.Parameters.AddWithValue("ad", txtad.Text);  -->> ad yerine @ad yazılmayacak mı ?
kmtkaydet.Parameters.AddWithValue("sifre", txtsifre.Text); -->> sifre yerine @sifre..
kmtkaydet.Parameters.AddWithValue("Yetki", checkBox1.CheckState); -->> Yetki yerine küçük harfli yetki ve @yetki olarak..

Sanırım hata burada.

Saygılarımla
 
Son düzenleme:

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
peki şifre kısmıda aynı şekilde neden hata veriyor
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
siz o alanları @ işareti ile düzeltip öyle deneyin lütfen. Ardından durumu yazın.

Saygılar
 

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
değiştirdiğim zaman aynı sorun halen devam ediyor
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

breakpoint kullanarak gittiğinizde hangi satır size bu hatayı veriyor. Verdiğiniz kodlarda iki yerde Sifre var. Birisi update, diğeri ise insert islemi.

Saygılar
 

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
Merhaba breakpoint kullanarak hatayı gözlemleyemiyorum çünkü devam ediyor
 

errno

Doçent
Katılım
17 Temmuz 2016
Mesajlar
694
Reaksiyon puanı
567
Puanları
93
Merhaba,

program akışı hata ile kırılmıyorsa sorun yok demektir. Ayrıca MySQL tarafında General Log enable yapın. Burada nasıl yapıldığı anlatılmaktadır.
En azından sorgularınızla ilgili açık bilgilere ulaşabilirsiniz.

Saygılarımla
 

darkanqeltr

Öğrenci
Katılım
18 Şubat 2018
Mesajlar
7
Reaksiyon puanı
0
Puanları
1
Yaş
44
2018-02-18 03:22:42 16fc InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2018-02-18 3:22:42 5884 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2018-02-18 3:22:42 5884 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2018-02-18 3:22:42 5884 [Note] InnoDB: The InnoDB memory heap is disabled
2018-02-18 3:22:42 5884 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2018-02-18 3:22:42 5884 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
2018-02-18 3:22:42 5884 [Note] InnoDB: Compressed tables use zlib 1.2.3
2018-02-18 3:22:42 5884 [Note] InnoDB: Using generic crc32 instructions
2018-02-18 3:22:42 5884 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2018-02-18 3:22:42 5884 [Note] InnoDB: Completed initialization of buffer pool
2018-02-18 3:22:42 5884 [Note] InnoDB: Highest supported file format is Barracuda.
2018-02-18 3:22:42 5884 [Note] InnoDB: The log sequence number 1835037 in ibdata file do not match the log sequence number 1962189 in the ib_logfiles!
2018-02-18 3:22:42 5884 [Note] InnoDB: Restoring possible half-written data pages from the doublewrite buffer...
2018-02-18 3:22:43 5884 [Note] InnoDB: 128 rollback segment(s) are active.
2018-02-18 3:22:43 5884 [Note] InnoDB: Waiting for purge to start
2018-02-18 3:22:43 5884 [Note] InnoDB: Percona XtraDB (Experts in Database Performance Management) 5.6.36-82.2 started; log sequence number 1962189
2018-02-18 3:22:43 6956 [Note] InnoDB: Dumping buffer pool(s) not yet started
2018-02-18 3:22:43 5884 [Note] Plugin 'FEEDBACK' is disabled.
2018-02-18 3:22:43 5884 [Note] Server socket created on IP: '::'.
2018-02-18 3:22:43 5884 [Note] c:\xampp\mysql\bin\mysqld.exe: ready for connections.
Version: '10.1.30-MariaDB' socket: '' port: 3306 mariadb.org binary distribution

---- Mesajlar birleştirildi ----

Güncel sorunum hala devam ediyor yardım edermisiniz
 
Son düzenleme:

Samet UCA

Müdavim
Müdavim
Katılım
3 Ağustos 2012
Mesajlar
3,288
Reaksiyon puanı
2,930
Puanları
358
Merhaba ben daha önce SQL üzerinden benzeri bir proje geliştirdim.
Projemdeki ilgili satırları sizin için Msql üzerine düzenlediğimde şöyle bir görüntü çıkıyor.
C#:
using System;
using System.Data;
using System.Data.OleDb;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        OleDbDataAdapter da;
        OleDbCommand cmd;
        DataSet ds;
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=Database11.accdb");
        public static string _yetkiseviyesi;
        public Form1()
        {
            InitializeComponent();
        }
        private void GirisTusu_Click(object sender, EventArgs e)
        {
            KullaniciVarmiYokmu();
            if (checkBox1.Checked == true) // Beni hatırla tuşu seçili ise
            {
                Settings1.Default.KullaniciAdi = textBox1.Text.TrimEnd();
                Settings1.Default.Sifre = textBox2.Text.TrimEnd();
            }
        }
        public void YetkiTanimla()
        {
            OleDbCommand yetki = new OleDbCommand("Select Yetki From Table1 where KullaniciAdi = '" + textBox1.Text + "' and Sifre = '" + textBox2.Text + "'", con);
            OleDbDataReader drs = yetki.ExecuteReader();
            while (drs.Read())  // Şart : drs okuması yapılıyorsa..
            {

                _yetkiseviyesi += drs["Yetki"]; // belirtilen değişkene Yetki sütunu içerisindeki veriyi aktar.

            }
            drs.Close();
            if(_yetkiseviyesi=="1") // Admin
            {

            }
            if(_yetkiseviyesi=="2") // Normal Kullanıcı
            {

            }
        }
        public void KullaniciVarmiYokmu()
        {
            if (con.State == ConnectionState.Closed)
                con.Open();
            try
            {
                OleDbCommand komut = new OleDbCommand("Select * from Table1 Where KullaniciAdi ='" + textBox1.Text + "' and Sifre = '" + textBox2.Text + "'", con);
                int sonuc = (int)komut.ExecuteScalar();

                if (sonuc != 0) // Kullanici Var
                {
                    YetkiTanimla();
                }

            }
            catch
            {
                MessageBox.Show("Kullanici yok!", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void KullaniciKaydetTusu_Click(object sender, EventArgs e)
        {
            if (con.State == ConnectionState.Closed)
                con.Open();
            string kayit = "insert into Table1 (Adi,SoyAdi,KullaniciAdi,Sifre) values (@Adi,@SoyAdi,@KullaniciAdi,@Sifre)";
            OleDbCommand komut = new OleDbCommand(kayit,con);

            komut.Parameters.AddWithValue("@Adi", TextAdi.Text.TrimEnd());
            komut.Parameters.AddWithValue("@SoyAdi", TextSoyadi.Text.TrimEnd());
            komut.Parameters.AddWithValue("@KullaniciAdi", TextKullaniciAdi.Text.TrimEnd());
            komut.Parameters.AddWithValue("@Sifre", TextSifre.Text.TrimEnd());


            komut.ExecuteNonQuery();
            MessageBox.Show("Yeni Kullanici Eklendi", "", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
    }

Bu kodlarda Kullanıcı girişi yapabilir, kullanıcının yetkisini tanımlayabilir, yeni bir kullanıcı ekleyebilirsiniz.
Yukarıdaki kodları içeren projeye buradan ulaşabilirsiniz.
WindowsFormsApp2.rar

Başta bahsettiğim daha ayrıntılı işlemlerin yapılabileceği projeye ise depomdan ulaşabilirsiniz.
SLibrary-Normal-Parameter/Kutuphane Yeni at master · SametUCA/SLibrary-Normal-Parameter · GitHub
 
Son düzenleme:
Üst