none
access to sql RRS feed

  • Soru

  • Merhaba,
    Access veritabanini sql veritabanina aktararn bir program yazdim. Sorun bu:
    Access date formatinda olan hucreyi sql e aktarma zamani incorrect syntax near 12 hatasi veriyor.
    Sql de hucrenin formatini datetime2(0) yaptim. Diger degerler sorunsuz yukleniyor. Ne yapmaliyim?

    Tesekkurler.

    8 Haziran 2017 Perşembe 08:25

Yanıtlar

  • Sorguyu ve kodları görmediğimiz için bir şey demek zor ama büyük ihtimalle parametre kullanmadığın için bu tür bir sorunla karşılaşıyorsun. Bir diğer ihtimal de tarih olarak değil de string olarak alıyorsun
    • Düzenleyen Olcay GUZEL 8 Haziran 2017 Perşembe 10:16
    • Yanıt Olarak İşaretleyen Lwin90 12 Haziran 2017 Pazartesi 10:21
    8 Haziran 2017 Perşembe 10:14
  •  cmd.CommandText = "Insert into Setup Values(" + dt1.Rows[i][0] + ",'"+ dt1.Rows[i][1] +"','" + dt1.Rows[i][12] + "'," + dt1.Rows[i][6] + "," + dt1.Rows[i][14] + ")";

    Bu satırın yerine,

    cmd.CommandText = "INSERT INTO Setup VALUES(@param1, @param2, @param3, @param4, @param5);
    cmd.Parameters.AddWithValue("@param1", Convert.ToInt32(dt1.Rows[i][0]));
    cmd.Parameters.AddWithValue("@param2", Convert.ToDateTime(dt1.Rows[i][1]));
    cmd.Parameters.AddWithValue("@param3", dt1.Rows[i][12].ToString());
    cmd.Parameters.AddWithValue("@param4", Convert.ToInt32(dt1.Rows[i][6]));
    cmd.Parameters.AddWithValue("@param5", Convert.ToInt32(dt1.Rows[i][14]));
    kullanın...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    • Düzenleyen MuratAKSARAY 8 Haziran 2017 Perşembe 17:28
    • Yanıt Olarak İşaretleyen Lwin90 12 Haziran 2017 Pazartesi 10:21
    8 Haziran 2017 Perşembe 15:24

Tüm Yanıtlar

  • datetime2(3) olması gerekmez mi.?.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    8 Haziran 2017 Perşembe 09:50
  • Ayni hatayi aliyorum yinede, datetime2(3) yaptigimda.
    8 Haziran 2017 Perşembe 10:03
  • Sorguyu ve kodları görmediğimiz için bir şey demek zor ama büyük ihtimalle parametre kullanmadığın için bu tür bir sorunla karşılaşıyorsun. Bir diğer ihtimal de tarih olarak değil de string olarak alıyorsun
    • Düzenleyen Olcay GUZEL 8 Haziran 2017 Perşembe 10:16
    • Yanıt Olarak İşaretleyen Lwin90 12 Haziran 2017 Pazartesi 10:21
    8 Haziran 2017 Perşembe 10:14
  • incorrect syntax near 12

    hatasını aldığınız komut satırını paylaşır mısınız.?.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    8 Haziran 2017 Perşembe 10:25
  • Merhaba,

    Sql'deki datetime tanımını text olarak değiştirip denermisiniz.

    8 Haziran 2017 Perşembe 10:53
  • Degistirdim, olmadi.
    8 Haziran 2017 Perşembe 11:07
  •                             OleDbDataAdapter da1 = new OleDbDataAdapter("Select * from setupfile", conn);
                                DataTable dt1 = new DataTable();
                                da1.Fill(dt1);

                                cons.Open();

                                for (int i = 0; i < dt1.Rows.Count; i++)
                                {
                                    cmd.Connection = cons;
                                    cmd.CommandText = "Insert into Setup Values(" + dt1.Rows[i][0] + ",'"+ dt1.Rows[i][1] +"','" + dt1.Rows[i][12] + "'," + dt1.Rows[i][6] + "," + dt1.Rows[i][14] + ")";
                                    cmd.ExecuteNonQuery();
                                }

    dt1.Rows[i][1]  - tarih olan hucre bu, hatayi burada aliyorum.

    8 Haziran 2017 Perşembe 11:10
  •   cmd.Connection = cons;
                cmd.CommandText = "Insert into Setup Values(" + dt1.Rows[i][0] + "," + dt1.Rows[i][1] + "," + dt1.Rows[i][12] + "," + dt1.Rows[i][6] + "," + dt1.Rows[i][14] + ")";
                cmd.ExecuteNonQuery();
    Bu şekilde denermisiniz.
    8 Haziran 2017 Perşembe 11:16
  • Böyle bir programı, programlamayı öğrenme amaçlı mı yazdınız?

    (Çünkü hem Access içinde SQL'e Uploading Tool hem de SQL içinde Access'den veri transfer işlemi var)


    pgnchess.com

    dergikapaklari.com

    8 Haziran 2017 Perşembe 13:32
  •  cmd.CommandText = "Insert into Setup Values(" + dt1.Rows[i][0] + ",'"+ dt1.Rows[i][1] +"','" + dt1.Rows[i][12] + "'," + dt1.Rows[i][6] + "," + dt1.Rows[i][14] + ")";

    Bu satırın yerine,

    cmd.CommandText = "INSERT INTO Setup VALUES(@param1, @param2, @param3, @param4, @param5);
    cmd.Parameters.AddWithValue("@param1", Convert.ToInt32(dt1.Rows[i][0]));
    cmd.Parameters.AddWithValue("@param2", Convert.ToDateTime(dt1.Rows[i][1]));
    cmd.Parameters.AddWithValue("@param3", dt1.Rows[i][12].ToString());
    cmd.Parameters.AddWithValue("@param4", Convert.ToInt32(dt1.Rows[i][6]));
    cmd.Parameters.AddWithValue("@param5", Convert.ToInt32(dt1.Rows[i][14]));
    kullanın...


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...


    • Düzenleyen MuratAKSARAY 8 Haziran 2017 Perşembe 17:28
    • Yanıt Olarak İşaretleyen Lwin90 12 Haziran 2017 Pazartesi 10:21
    8 Haziran 2017 Perşembe 15:24