• 01-07-2019, 21:30:25
    #1
    insert into kısmına dateTimePicker2.Value.ToString() yazıyorum veritabanında da tipini varchar(50) yaptım fakat hata veriyor mssql kullanıyorum neden olabilir ?
  • 01-07-2019, 21:37:08
    #2
    Hata nedir yazılan kod nedir.
  • 01-07-2019, 21:57:03
    #3
    date olarak tipini belirleyin date.ToString(yyyy.MM.dd); olarak kayıt
  • 01-07-2019, 21:58:55
    #4
    Değeri parametre ile mi gönderiyorsunuz?
  • 01-07-2019, 22:44:43
    #5
    rshcoosl adlı üyeden alıntı: mesajı görüntüle
    Hata nedir yazılan kod nedir.
    hata
    System.Data.SqlClient.SqlException: 'Cannot insert an explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column.'
    yazılan kod
    SqlCommand komut = new SqlCommand("INSERT INTO uyeler (Ad_Soyad,Tc,Uye_Tarih,Aciklama,Email,Telefon,Cep_Tel,Adres) VALUES ('"+ textBox2.Text.ToString()+ "' , '"+maskedTextBox5.Text.ToString()+"' , '"+dateTimePicker2.Value.ToString()+"' , '"+richTextBox2.Text.ToString()+"' , '"+textBox4.Text.ToString()+"' , '"+maskedTextBox3.Text.ToString()+"' , '"+maskedTextBox4.Text.ToString()+"' , '"+richTextBox3.Text.ToString()+"' )",baglan);
    Scicek adlı üyeden alıntı: mesajı görüntüle
    date olarak tipini belirleyin date.ToString(yyyy.MM.dd); olarak kayıt
    olmadı hocam ya da ben ekleyemedim bilmiyorum

    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    Değeri parametre ile mi gönderiyorsunuz?
    hayır yukarıda yazdığım gibi
  • 02-07-2019, 00:49:59
    #6
    kolonun tipini degistiremiyorsun yani varchar dedigin gecerli degil. O kolonu silip tekrar ekle ve ilk olarak varchar sec olmasi lazim..
  • 02-07-2019, 01:35:08
    #7
    Huskar adlı üyeden alıntı: mesajı görüntüle
    hata
    System.Data.SqlClient.SqlException: 'Cannot insert an explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column.'
    yazılan kod
    SqlCommand komut = new SqlCommand("INSERT INTO uyeler (Ad_Soyad,Tc,Uye_Tarih,Aciklama,Email,Telefon,Cep_Tel,Adres) VALUES ('"+ textBox2.Text.ToString()+ "' , '"+maskedTextBox5.Text.ToString()+"' , '"+dateTimePicker2.Value.ToString()+"' , '"+richTextBox2.Text.ToString()+"' , '"+textBox4.Text.ToString()+"' , '"+maskedTextBox3.Text.ToString()+"' , '"+maskedTextBox4.Text.ToString()+"' , '"+richTextBox3.Text.ToString()+"' )",baglan);
    Hocam bu şekilde direk query içine değerleri eklerseniz ve değerlerde sql syntaxına aykırı karakterler olursa hata oluşur. Bu gibi durumlarda hatadan kaçınmak için parametre ile değeri eklemelisiniz. Varchar olarak ayarladığınızda aşağıdaki kodun çalışması lazım.


    SqlCommand komut = new SqlCommand("INSERT INTO uyeler (Ad_Soyad,Tc,Uye_Tarih,Aciklama,Email,Telefon,Cep_ Tel,Adres) " +
    "VALUES (@adSoyad, @tc, @uyeTarih, @aciklama, @email , @telefon, @cepTelefon , @adres)", baglanti);
    komut.Parameters.AddWithValue("@adSoyad", textBox2.Text.ToString());
    komut.Parameters.AddWithValue("@tc", maskedTextBox5.Text.ToString());
    komut.Parameters.AddWithValue("@uyeTarih", dateTimePicker2.Value.ToString());
    komut.Parameters.AddWithValue("@aciklama", richTextBox2.Text.ToString());
    komut.Parameters.AddWithValue("@email", textBox4.Text.ToString());
    komut.Parameters.AddWithValue("@telefon", maskedTextBox3.Text.ToString());
    komut.Parameters.AddWithValue("@cepTelefon", maskedTextBox4.Text.ToString());
    komut.Parameters.AddWithValue("@adres", richTextBox3.Text.ToString());

    // Ek olarak aşağıdaki gibi direk tipini de belirterek değer atayabilirsiniz.
    komut.Parameters.Add("@uyeTarih", System.Data.SqlDbType.VarChar).Value = dateTimePicker2.Value.ToString();
  • 02-07-2019, 15:00:22
    #8
    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    Hocam bu şekilde direk query içine değerleri eklerseniz ve değerlerde sql syntaxına aykırı karakterler olursa hata oluşur. Bu gibi durumlarda hatadan kaçınmak için parametre ile değeri eklemelisiniz. Varchar olarak ayarladığınızda aşağıdaki kodun çalışması lazım.


    SqlCommand komut = new SqlCommand("INSERT INTO uyeler (Ad_Soyad,Tc,Uye_Tarih,Aciklama,Email,Telefon,Cep_ Tel,Adres) " +
    "VALUES (@adSoyad, @tc, @uyeTarih, @aciklama, @email , @telefon, @cepTelefon , @adres)", baglanti);
    komut.Parameters.AddWithValue("@adSoyad", textBox2.Text.ToString());
    komut.Parameters.AddWithValue("@tc", maskedTextBox5.Text.ToString());
    komut.Parameters.AddWithValue("@uyeTarih", dateTimePicker2.Value.ToString());
    komut.Parameters.AddWithValue("@aciklama", richTextBox2.Text.ToString());
    komut.Parameters.AddWithValue("@email", textBox4.Text.ToString());
    komut.Parameters.AddWithValue("@telefon", maskedTextBox3.Text.ToString());
    komut.Parameters.AddWithValue("@cepTelefon", maskedTextBox4.Text.ToString());
    komut.Parameters.AddWithValue("@adres", richTextBox3.Text.ToString());

    // Ek olarak aşağıdaki gibi direk tipini de belirterek değer atayabilirsiniz.
    komut.Parameters.Add("@uyeTarih", System.Data.SqlDbType.VarChar).Value = dateTimePicker2.Value.ToString();
    hocam elbetteki doğru yazım şekli budur fakat bu bir okul projesi olduğu için güvenlik vs gerekmiyor. Şimdi ben böyle eklersem hoca diyecek ki ben size böyle bir yöntem göstermedim bunu sen yapmamışsın