none
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Likes_WPhoto". The conflict occurred in database "gcdb", table "dbo.WPhoto", column 'ID'. The statement has been terminated. RRS feed

  • Soru

  • neden bu hatayı alıyorum? :( butona tıkladığım anda bu hatayı veriyor...

    <asp:LinkButton ID="libLike" runat="server" CssClass="button like-button" PostBackUrl='<%# "Works.aspx?pid=" + Eval("ID") %>' OnClick="libLike_Click">BeĞen</asp:LinkButton>&nbsp;<asp:Label ID="lblLikeCount" runat="server" CssClass="like-count" />
    protected void libLike_Click(object sender, EventArgs e)
    	{
    		if (!string.IsNullOrEmpty(Session["ip"].ToString()))
    		{
    			int likeID = db.GetSqlCommandLike("select LikeCount from WPhoto where ID=@ID", Convert.ToInt32(resimid));
    			db.GetSqlCommandLike("update WPhoto set LikeCount=@LikeCount where ID=@ID", likeID + 1, Convert.ToInt32(resimid));
    			string conStr = ConfigurationManager.ConnectionStrings["CS"].ToString();
    			SqlConnection conn = new SqlConnection(conStr);
    			SqlCommand cmd = new SqlCommand("insert into Likes (IP, Tarih, PhotoID) values (@IP, @Tarih, @PhotoID)", conn);
    			cmd.Parameters.Add("@IP", SqlDbType.NVarChar, 50);
    			cmd.Parameters["@IP"].Value = Session["ip"].ToString();
    			cmd.Parameters.Add("@Tarih", SqlDbType.DateTime);
    			cmd.Parameters["@Tarih"].Value = DateTime.Now;
    			cmd.Parameters.Add("@PhotoID", SqlDbType.Int);
    			cmd.Parameters["@PhotoID"].Value = Convert.ToInt32(resimid);
    
    			try
    			{
    				conn.Open();
    				cmd.ExecuteNonQuery();
    			}
    			catch (Exception ex)
    			{
    				lblW.ForeColor = Color.Red;
    				lblW.Text = "Bir hata oluştu!<br/>" + ex.Message;
    			}
    			finally
    			{
    				conn.Close();
    			}
    			libLike.Visible = false;
    		}
    	}



    1881-193∞


    • Düzenleyen Melih K 28 Aralık 2013 Cumartesi 10:24
    • Değiştirilmiş Tür Özgür Tekbaş 30 Aralık 2013 Pazartesi 16:45
    • Değiştirilmiş Tür Özgür Tekbaş 30 Aralık 2013 Pazartesi 23:20
    23 Aralık 2013 Pazartesi 23:14

Tüm Yanıtlar

  • Merhaba,

    ResimId'yi nasıl elde ediyorsun. sadece resimId isimli bir değişken görebildim. Bu bir kontrolden mi geliyor ? Ya da değişken mi ?

    Likes tablosuna Insert etmek istediğin resimId'nin geçerli olduğundan emin misin (ForeignKey hatası gibi görünüyor, WPhoto'da olmayan ResimId Likes tablosuna insert edilemiyor olabilir) ?

    Ayrıca Breakpoint koyarak, ResimId'yi elde edebiliyor musun ? Kontrol edebilir misin ?

    24 Aralık 2013 Salı 01:12
  • bu şekilde alıyorum resim id...

    if (Request.QueryString.Count != 0)
    		{
    			resimid = int.Parse(Request.QueryString["pid"].ToString());
    			if (string.IsNullOrEmpty(Session["ip"].ToString()))
    			{
    				libLike.Visible = false;
    			}
    		}


    1881-193∞

    • Düzenleyen Melih K 28 Aralık 2013 Cumartesi 10:24
    24 Aralık 2013 Salı 11:10
  • ResimId'yi elde ettiğin kod'a göre, pid olarak gönderdiğin query string değerini kontrol edebilir misin ? bu querystring'i gönderdiğin yerden, resimId nasıl elde edilip gönderiliyor. Bunları kontrol edebilir misin ?

    Çevirme v.b. işlemlerde sorun görünmüyor. Gönderdiğin ve/veya almaya çalıştığın değerlerde sorun var gibi. 

    İyi çalışmalar.

    30 Aralık 2013 Pazartesi 22:04
  • İnsert etmeye çalıştığın Id sistemde mevcüt olduğundan veriyor gibi geliyor. Kontrol edip tekrardan deneyebilir misin.


    Herkez Bir Zamanlar ÇAyLaK 'tı

    31 Aralık 2013 Salı 08:43
  • http://www.yazgelistir.com/makale/foreign-key-nedir-ne-degildir-

    burhansuleymanvural@windowslive.com

    31 Aralık 2013 Salı 09:02