مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mohmmad sadat

عضویت از 1392/02/16

مشکل صفر رد کردن َ UserID در موقع ثبت نام

  • یکشنبه 26 آذر 1396
  • 01:53
تشکر میکنم

سلام

در برنامه ای که نوشتم قسمت ثبت نام رو کامل کردم و چند ثبت نام هم انجام دادم که با موفقیت انجام شد.  اما بعد دو سه روز خواستم ثبت نام بکنم ارور میده . چک کردم متوجه شدم که UserID رو صفر رد میکنه . من UserID رو در دیتابیس از نوع int و identity Columns قرار دادم و تمام فیلد های جدول هم چک کردم تا خالی رد نشه ولی نمیدونم باز چرا UserID عدد صفر رد میکنه . آیا باید به صورت دستی UserID رو مقدار بدم ؟ لطفا راهنماییم کنید که چطور این مشکل رو حل کنم . ممنون

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • یکشنبه 26 آذر 1396
  • 09:37

متن ارور به همراه کد ثبت را قرار دهید

کاربر سایت

mohmmad sadat

عضویت از 1392/02/16

  • یکشنبه 26 آذر 1396
  • 15:24

سلام استاد .

متن ارور و MetaData User و DataBase User رو توی فایل rar قرار دادم

 bool isCapthcaValid = ValidateCaptcha(Request["g-recaptcha-response"]);
            ViewBag.IsErrorRegister = null;
            ViewBag.IsErrorCaptcha = null;
            if (isCapthcaValid)
            {
                if (ModelState.IsValid)
                {
                    #region  هش پسورد
                    HashAlgorithm hash = new SHA1Cng();
                    byte[] Result = hash.ComputeHash(Encoding.UTF8.GetBytes(Register.Password + "sdre"));
                    byte[] ResultFinal = hash.ComputeHash(Result);
                    string SecurePass = "k+osd" + Convert.ToBase64String(ResultFinal);
                    #endregion

                    var query_Email = (from p in db.tbl_User where p.Email == Register.Email.Trim().ToLower() select p);
                    var query_UserName = (from p in db.tbl_User where p.UserName == Register.UserName.Trim().ToLower() select p);
                    if (query_UserName.Any() == false)
                    {
                        if (query_Email.Any() == false)
                        {
                            tbl_User user = new tbl_User()
                            {
                                UserName = Register.UserName.Trim().ToLower(),
                                Email = Register.Email.Trim().ToLower(),
                                Password = SecurePass,
                                RoleID_FK = 3,
                                active_code = Guid.NewGuid().ToString(),
                                Date = DateTime.Today,
                                IP_Address = Request.UserHostAddress,
                                isActive = false,
                                block = false,
                                Online = false,
                                Movakel = false,
                                //-----------
                                Name = "Ali123",
                                Familly = "hoseiny",
                                Mobile = "09114760381",
                                image = "noImage",

                            };
                            db.tbl_User.Add(user);
                            db.SaveChanges();

                        }
                        else
                        {
                            ModelState.AddModelError("Email", "ایمیل وارد شده تکراری می باشد");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "نام کاربری وارد شده تکراری می باشد");
                    }
                }
                return View(Register);
            }
            else
            {
                ViewBag.IsErrorCaptcha = true;
                return View(Register);
            }

فایل های ضمیمه

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • یکشنبه 26 آذر 1396
  • 16:15

توسط کد زیر میتوانید مشکل را پیدا کنید، ابتدا متد savechange را دورن یک try قرار بدهید پس از این که خطا رخ داد در پنجره Debug میتوان مشکل را مشاهده کنید:

           try
            {
                db.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                Debug.WriteLine(ex.EntityValidationErrors);
                var sb = new StringBuilder();

                foreach (var failure in ex.EntityValidationErrors)
                {
                    sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                    foreach (var error in failure.ValidationErrors)
                    {
                        sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                        sb.AppendLine();
                    }
                }

                throw new DbEntityValidationException("Entity Validation Failed - errors follow:\n" + sb, ex);
            }

کاربر سایت

mohmmad sadat

عضویت از 1392/02/16

  • یکشنبه 26 آذر 1396
  • 16:22

ممنون مشکلم حل شد . مشکل از RegularExpression بود

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)