İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Programlama Dilleri
Programlama Dilleri

c# mysql

darkanqeltr18.02.201813 cevap2.044 görüntüleme
2018'den beri7 mesaj
#1
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ı
Cevaplar
2016'den beri694 mesaj
#2
Merhaba,

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

Saygılar
darkanqeltr Konuyu açan
2018'den beri7 mesaj
#3
öncelikle teşekkür ederim bu saatte ilgilendiğiniz için tabiki buyrun
 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 olarakUntitled-3.jpg
düzenlendi
2016'den beri694 mesaj
#4
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;


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.



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



Saygılarımla
darkanqeltr Konuyu açan
2018'den beri7 mesaj
#5
ö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();

}
}
}
2016'den beri694 mesaj
#6
Merhaba,

hata içeriğinde;


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,



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
düzenlendi
darkanqeltr Konuyu açan
2018'den beri7 mesaj
#7
peki şifre kısmıda aynı şekilde neden hata veriyor
2016'den beri694 mesaj
#8
siz o alanları @ işareti ile düzeltip öyle deneyin lütfen. Ardından durumu yazın.

Saygılar
darkanqeltr Konuyu açan
2018'den beri7 mesaj
#9
değiştirdiğim zaman aynı sorun halen devam ediyor
2016'den beri694 mesaj
#10
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 Konuyu açan
2018'den beri7 mesaj
#11
Merhaba breakpoint kullanarak hatayı gözlemleyemiyorum çünkü devam ediyor
2016'den beri694 mesaj
#12
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 Konuyu açan
2018'den beri7 mesaj
#13
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
düzenlendi
2012'den beri3.287 mesaj
#14
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.
Kaynak Kodu Gör
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
düzenlendi

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.