上传图片 - ForeignKey冲突

时间:2013-09-02 13:21:10

标签: c# mysql asp.net sql asp.net-mvc

我试图使用jquery插件上传我的图片并将其插入我的数据库。

我的问题是两张桌子之间的关系。

  

INSERT语句与FOREIGN KEY约束冲突   “FK_Image_User”。冲突发生在数据库中   “Mydatabase”,表“dbo.User”,列“Id”。

这是我的代码:

控制器中的

GET:

 public ActionResult Manage(int id = 0)
        {
            User u= db.MyUsers.Find(id);

            if (u== null)
            {
                return HttpNotFound();
            }

            return View(u);
        }

上传我有这段代码:

 private void UploadWholeFile(HttpContext context, List<FilesStatus> statuses, Image img, User u)
        {
            using (SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
            {
                for (int i = 0; i < context.Request.Files.Count; i++)
                {
                    var file = context.Request.Files[i];

                    var fullpath = StorageRoot + Guid.NewGuid() + Path.GetFileName(file.FileName);

                    file.SaveAs(fullpath);

                    string fullName = Path.GetFileName(file.FileName);
                    statuses.Add(new FilesStatus(fullName, file.ContentLength, fullpath));

                    SqlCommand cmd;
                    System.Text.StringBuilder sql = new System.Text.StringBuilder();
                    sql.Append("insert into Image(MyFileName,Id_User)");
                    sql.Append("values (@MyFileName, @Id_User)");

                    cn.Open();
                    cmd = new SqlCommand(sql.ToString(), cn);
                    cmd.Parameters.Add("@MyFileName", SqlDbType.VarChar).Value = fullpath;
                    cmd.Parameters.Add("@Id_User", SqlDbType.Int).Value = u.Id;

                    cmd.ExecuteNonQuery();

                    cn.Close();
                }

            }
        }

1 个答案:

答案 0 :(得分:1)

Id_User与dbo.User表存在外键关系,该表不包含您尝试插入的ID。首先在dbo.User表中插入值,或者检查并更正在Id_User中插入的值。