Şimdi Ara

C# Access Bağlantı Hatası

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
18
Cevap
1
Favori
1.783
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar program ölçüt ifadesinde veri türü uyuşmazlığı hatası veriyor bu gidince de INSERT INTO deyiminde sözdizimi hatası veriyor. Tek tek kontrol ettim sorunu bulamadım. Projeyi bitirmem lazım finallere kadar. Sorun ne olabilir yardımcı olursanız çok mutlu olurum şimdiden teşekkür ederim.



  • int olan alana string falan koyuyorsun anladigim kadariyla. kodu ve db columnlari at anlasilir
  • quote:

    Orijinalden alıntı: Microsoft Specialist

    int olan alana string falan koyuyorsun anladigim kadariyla. kodu ve db columnlari at anlasilir

    Tüm metin türleri string türünde accesste. İŞimi kolaylaştırmak için öyle yaptım. kod karışık ama atayım.
     
    cmd = new OleDbCommand();
    con.Open();
    cmd.Connection = con;
    cmd.CommandText = "insert into SoforKayit (MusteriNo,Tarih,Adi,Soyadi,GorevYeri,EvAdresi1,EvAdresi2,EvTelefonu,CepTelefonu,IsAdresi1,IsAdresi2,IsTelefonu,Fax,NufusSeri,NufusNo,NufusKimlikNo,NufusBabaAdi,NufusAnaAdi,NufusDogumYeri,NufusDogumTarihi,NufusMedeniHali,NufusDini,NufusIl,NufusIlce,NufusMahalleKoy,NufusKayitNo,NufusCiltNo,NufusSiraNo,NufusKutuk,NufusVerildigiYer,NufusVerilisNedeni,NufusVerilisTarihi,Sehir,Ulke,IsSehir,VerildigiIl,VerilenTarih,Sinifi,BelgeNo,KullandigiCihazVeProtezler,KanGrubu,Usta) values ('" +musno.Text+ "','" +tarih.Text+ "','" +adi.Text+ "','" +soyadi.Text+ "','"+gorevyeri.Text+"','"+evadresi1+"','"+evadresi2+"','"+evtel+"','"+ceptel+"','"+isadresi1+"','"+isadresi2+"','"+istel+"','"+fax+"','"+nufseri+"','"+nufno+"','"+nufkimlik+"','"+nufbaba+"','"+nufana+"','"+nufdogyeri+"','"+nufdogtarih+"','"+nufmedenihali+"','"+nufdin+"','"+nufil+"','"+nufilce+"','"+nufmah+"','"+nufkayitno+"','"+nufciltno+"','"+nufsirano+"','"+nufkutuk+"','"+nufverildigiyer+"','"+nufverneden+"','"+nufvertarih+"','"+sehir+"','"+ulke+"','"+issehir+"','"+verildigiil+"','"+verildigitarih+"','"+ehliyetsinif+"','"+belgeno+"','"+kulcihaz+"','"+kangrup+"','"+usta+"')";
    cmd.ExecuteNonQuery();
    con.Close();
    griddoldur();

    MessageBox.Show("KAYIT BAŞARIYLA EKLENDİ");




  • Arkadaşlar proje ödevi bilen lütfen yardım etsin
  • bazı yerlerde textbox verisini okutmuşsun bazılarında ise sadece desken ismi vermişsin o "kulcihaz" gibi bu bir string değişken mi içine değer aldımı nasıl yaptın ? en iyisi sen tüm kodu gönder oana göre bakalım ayrıca database tablonun design gönderirsen daha anlaşılır olur kardeş.
  • quote:

    Orijinalden alıntı: projeyazilim

    bazı yerlerde textbox verisini okutmuşsun bazılarında ise sadece desken ismi vermişsin o "kulcihaz" gibi bu bir string değişken mi içine değer aldımı nasıl yaptın ? en iyisi sen tüm kodu gönder oana göre bakalım ayrıca database tablonun design gönderirsen daha anlaşılır olur kardeş.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.OleDb;

    namespace kullanici_giris
    {
    public partial class Form3 : Form
    {

    OleDbConnection con;
    OleDbDataAdapter da;
    OleDbCommand cmd;
    DataSet ds;


    public Form3()
    {
    InitializeComponent();
    }
    void griddoldur()
    {
    con = new OleDbConnection("Provider=Microsoft.ACE.Oledb.12.0;Data Source=ARACBILGILERI.accdb");
    da = new OleDbDataAdapter("SElect *from SoforKayit", con);
    ds = new DataSet();
    con.Open();
    da.Fill(ds, "SoforKayit");

    con.Close();
    }
    private void Form3_Load(object sender, EventArgs e)
    {

    this.Text = "ŞOFÖR KAYIT";
    griddoldur();

    }



    private void button1_Click(object sender, EventArgs e)
    {
    cmd = new OleDbCommand();
    con.Open();
    cmd.Connection = con;
    cmd.CommandText = "INSERT INTO SoforKayit (MusteriNo,Tarih,Adi,Soyadi,GorevYeri,EvAdresi1,EvAdresi2,EvTelefonu,CepTelefonu,IsAdresi1,IsAdresi2,IsTelefonu,Fax,NufusSeri,NufusNo,NufusKimlikNo,NufusBabaAdi,NufusAnaAdi,NufusDogumYeri,NufusDogumTarihi,NufusMedeniHali,NufusDini,NufusIl,NufusIlce,NufusMahalleKoy,NufusKayitNo,NufusCiltNo,NufusSiraNo,NufusKutuk,NufusVerildigiYer,NufusVerilisNedeni,NufusVerilisTarihi,Sehir,Ulke,IsSehir,VerildigiIl,VerilenTarih,Sinifi,BelgeNo,KullandigiCihazVeProtezler,KanGrubu,Usta) values ('" +musno.Text+ "','" +tarih.Text+ "','" +adi.Text+ "','" +soyadi.Text+ "','"+gorevyeri.Text+"','"+evadresi1+"','"+evadresi2+"','"+evtel+"','"+ceptel+"','"+isadresi1+"','"+isadresi2+"','"+istel+"','"+fax+"','"+nufseri+"','"+nufno+"','"+nufkimlik+"','"+nufbaba+"','"+nufana+"','"+nufdogyeri+"','"+nufdogtarih+"','"+nufmedenihali+"','"+nufdin+"','"+nufil+"','"+nufilce+"','"+nufmah+"','"+nufkayitno+"','"+nufciltno+"','"+nufsirano+"','"+nufkutuk+"','"+nufverildigiyer+"','"+nufverneden+"','"+nufvertarih+"','"+sehir+"','"+ulke+"','"+issehir+"','"+verildigiil+"','"+verildigitarih+"','"+ehliyetsinif+"','"+belgeno+"','"+kulcihaz+"','"+kangrup+"','"+usta+"')";
    cmd.ExecuteNonQuery();
    con.Close();
    griddoldur();

    MessageBox.Show("KAYIT BAŞARIYLA EKLENDİ");
    }



    C# Access Bağlantı Hatası



    Durum bundan ibaret. Ekleme sorununu çözünce projenin kalanı basit çok önemli benim için. FF almak istemiyorum şimdiden teşekkürler :)



    < Bu mesaj bu kişi tarafından değiştirildi voldemortunvarisi -- 27 Mart 2017; 21:19:58 >




  • yukarıda arkadaş demiş zaten çoğu kontrolde .Text kısmını unutmuşsun ayrıca *from bitişik olmuş onu da ayır
  • quote:

    Orijinalden alıntı: Gökşen PASLI

    yukarıda arkadaş demiş zaten çoğu kontrolde .Text kısmını unutmuşsun ayrıca *from bitişik olmuş onu da ayır

    Dediklerinizi yaptım ölçüt ifadesinde veri türü uyuşmazlığı hatası verdi. Hepsinin veri türü metin tarih hariç. Neden bu hatayı veriyor.



    < Bu mesaj bu kişi tarafından değiştirildi voldemortunvarisi -- 27 Mart 2017; 23:53:13 >
  • kardeş database table içinde belirlediğin alanların titpi ile gönderdiğin verinin tipi aynı değil bak istersen. convert yapman gerekebilir.
  • quote:

    Orijinalden alıntı: voldemortunvarisi


    quote:

    Orijinalden alıntı: Microsoft Specialist

    int olan alana string falan koyuyorsun anladigim kadariyla. kodu ve db columnlari at anlasilir

    Tüm metin türleri string türünde accesste. İŞimi kolaylaştırmak için öyle yaptım. kod karışık ama atayım.

    cmd = new OleDbCommand();
    con.Open();
    cmd.Connection = con;
    cmd.CommandText = "insert into SoforKayit (MusteriNo,Tarih,Adi,Soyadi,GorevYeri,EvAdresi1,EvAdresi2,EvTelefonu,CepTelefonu,IsAdresi1,IsAdresi2,IsTelefonu,Fax,NufusSeri,NufusNo,NufusKimlikNo,NufusBabaAdi,NufusAnaAdi,NufusDogumYeri,NufusDogumTarihi,NufusMedeniHali,NufusDini,NufusIl,NufusIlce,NufusMahalleKoy,NufusKayitNo,NufusCiltNo,NufusSiraNo,NufusKutuk,NufusVerildigiYer,NufusVerilisNedeni,NufusVerilisTarihi,Sehir,Ulke,IsSehir,VerildigiIl,VerilenTarih,Sinifi,BelgeNo,KullandigiCihazVeProtezler,KanGrubu,Usta) values ('" +musno.Text+ "','" +tarih.Text+ "','" +adi.Text+ "','" +soyadi.Text+ "','"+gorevyeri.Text+"','"+evadresi1+"','"+evadresi2+"','"+evtel+"','"+ceptel+"','"+isadresi1+"','"+isadresi2+"','"+istel+"','"+fax+"','"+nufseri+"','"+nufno+"','"+nufkimlik+"','"+nufbaba+"','"+nufana+"','"+nufdogyeri+"','"+nufdogtarih+"','"+nufmedenihali+"','"+nufdin+"','"+nufil+"','"+nufilce+"','"+nufmah+"','"+nufkayitno+"','"+nufciltno+"','"+nufsirano+"','"+nufkutuk+"','"+nufverildigiyer+"','"+nufverneden+"','"+nufvertarih+"','"+sehir+"','"+ulke+"','"+issehir+"','"+verildigiil+"','"+verildigitarih+"','"+ehliyetsinif+"','"+belgeno+"','"+kulcihaz+"','"+kangrup+"','"+usta+"')";
    cmd.ExecuteNonQuery();
    con.Close();
    griddoldur();

    MessageBox.Show("KAYIT BAŞARIYLA EKLENDİ");


    1- Böyle kod yazarsan sql injection yersin. Sql parametre ile göndermeyi bir ara derim.
    2- herşeyi '' içine alarak onu string yapmış oluyorsun iste bu da seni tür dönüşüm hatasına götürüyor.
    3- 3,2 gibi ise parametren onu convert edip 3.2 yapman lazım sorn o da olabilir.
    4- dapper.net mini orm aracına bak derim.
    5- Sorgu yazarak (orm ile üretilmeyen sorgularda) mutlaka ama mutlaka o sorguyu al git veritabanında çalıştır ondan sonra koda koy.

    quote:


    // cmd.CommandText = "insert into SoforKayit ...."; olan kodunu al
    string sorgu = "insert into SoforKayit ....";
    cmd.CommandText= sorgu;



    yap. ve hata alırsan (ki alıyorsun) o stringe break point koy. bak. de olmuş işlendikten sonraki kodu al direk access de çalıştır bak. Ben şahsen eğer dosya tabanlı bir sql gerekiyorsa access yerine sqlite tercih ederim.

    birde ille stringi birleştireceğim zaten ödev bu kimse sql injection yapmaz ve bu bilginin bilincinndeyim diyorsan bari string interpolation kullan. insan okuyacak kodu. Kod gerçek hayatta yazıldığından çok okunur. O yüzden okunabilirlik ve bakım yapılabilirlik önemlidir ve kariyerinizde bir tercih veha tercih edilmeme sebebi olabilir. alışkanlık edinmeye çalışın.http://www.ilkayilknur.com/c-sharp-6-string-interpolation



    < Bu mesaj bu kişi tarafından değiştirildi mahoni_38 -- 28 Mart 2017; 9:59:19 >




  • Olmuyor arkadaşlar olmuyor. Benim bir an önce bu sorunu çözmem gerekiyor vakit daraldı.. Yeniden oluşturacağım gece uyumam yaparım artık..
  • quote:

    Orijinalden alıntı: voldemortunvarisi

    Olmuyor arkadaşlar olmuyor. Benim bir an önce bu sorunu çözmem gerekiyor vakit daraldı.. Yeniden oluşturacağım gece uyumam yaparım artık..

    benim yazımı okuyup anladığına emin misin?

    Dediğim yap sorgunun çalışmadan önceki stringi buraya şema ile at. yani data ile birleştirilmiş sunucuya gidecek halini.
    http://sqlfiddle.com/

    üzerinden deneriz hata ne. söyleriz
  • quote:

    Orijinalden alıntı: mahoni_38


    quote:

    Orijinalden alıntı: voldemortunvarisi

    Olmuyor arkadaşlar olmuyor. Benim bir an önce bu sorunu çözmem gerekiyor vakit daraldı.. Yeniden oluşturacağım gece uyumam yaparım artık..

    benim yazımı okuyup anladığına emin misin?

    Dediğim yap sorgunun çalışmadan önceki stringi buraya şema ile at. yani data ile birleştirilmiş sunucuya gidecek halini.
    http://sqlfiddle.com/

    üzerinden deneriz hata ne. söyleriz

    dediğini anlamadım dostum access ile bağlamaya çalışıyorum. Olmadı tekrar deneyip deneyip yaparım artık. Çünkü ilk 6 kaydı ekleyip denemiştiim sorunsuzdu kalanları da ekleyince çalışmadı. Veri türleri de aynı. Convert işlemine gelince convert nasıl yapabilirim ? Hepsi string türünde zaten. Çözemedim




  • quote:

    Orijinalden alıntı: voldemortunvarisi


    quote:

    Orijinalden alıntı: mahoni_38


    quote:

    Orijinalden alıntı: voldemortunvarisi

    Olmuyor arkadaşlar olmuyor. Benim bir an önce bu sorunu çözmem gerekiyor vakit daraldı.. Yeniden oluşturacağım gece uyumam yaparım artık..

    benim yazımı okuyup anladığına emin misin?

    Dediğim yap sorgunun çalışmadan önceki stringi buraya şema ile at. yani data ile birleştirilmiş sunucuya gidecek halini.
    http://sqlfiddle.com/

    üzerinden deneriz hata ne. söyleriz

    dediğini anlamadım dostum access ile bağlamaya çalışıyorum. Olmadı tekrar deneyip deneyip yaparım artık. Çünkü ilk 6 kaydı ekleyip denemiştiim sorunsuzdu kalanları da ekleyince çalışmadı. Veri türleri de aynı. Convert işlemine gelince convert nasıl yapabilirim ? Hepsi string türünde zaten. Çözemedim

    o zaman yapabileğim bir şey yok. kolay gelsin.




  • quote:

    Orijinalden alıntı: mahoni_38


    quote:

    Orijinalden alıntı: voldemortunvarisi


    quote:

    Orijinalden alıntı: mahoni_38


    quote:

    Orijinalden alıntı: voldemortunvarisi

    Olmuyor arkadaşlar olmuyor. Benim bir an önce bu sorunu çözmem gerekiyor vakit daraldı.. Yeniden oluşturacağım gece uyumam yaparım artık..

    benim yazımı okuyup anladığına emin misin?

    Dediğim yap sorgunun çalışmadan önceki stringi buraya şema ile at. yani data ile birleştirilmiş sunucuya gidecek halini.
    http://sqlfiddle.com/

    üzerinden deneriz hata ne. söyleriz

    dediğini anlamadım dostum access ile bağlamaya çalışıyorum. Olmadı tekrar deneyip deneyip yaparım artık. Çünkü ilk 6 kaydı ekleyip denemiştiim sorunsuzdu kalanları da ekleyince çalışmadı. Veri türleri de aynı. Convert işlemine gelince convert nasıl yapabilirim ? Hepsi string türünde zaten. Çözemedim

    o zaman yapabileğim bir şey yok. kolay gelsin.

    Sorunu çözdüm. Tarihten kaynaklanıyormuş. Tarihte örneğin 1.1.2012 şeklinde değilde 1/1/2012 şeklinde yazmak gerekiyormuş. Yardımlarınız için teşekkürler. Sistemin tarihini baz aldığını unutmuşum. Yardımlarınız için çok teşekkürler. Otomasyonun büyük bir bölümü bitti bile çok mutlu oldum :D




  • int durum = ekle.ExecuteNonQuery(); hatası alıyorumda yardım edebilirmisiniz yetiştirmem geerek
  • quote:

    Orijinalden alıntı: omerkoroglu

    int durum = ekle.ExecuteNonQuery(); hatası alıyorumda yardım edebilirmisiniz yetiştirmem geerek
    Accessteki değişken türlerini metin yap. C#ta da öyle yap. Yani string. Ben öyle yapmıştım.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.