0

我正在尝试使用 jquery 插件上传我的图像并将其插入到我的数据库中。

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

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

这是我的代码:

在控制器中:

得到:

 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();
                }

            }
        }
4

1 回答 1

1

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

于 2013-09-02T13:28:09.250 回答