کد مربوط به ویرایش در صورت وجود دو فیلد غیر تکراری
سلام.
من میخام ویرایش کنم. دو فیلد من نباید تکراری باشن.
personname و email.
var pname = from checksave in db.Users
where checksave.PersonUserName == user.PersonUserName || checksave.Email == user.Email
select checksave;
if (pname.Count() != 0)
{
return View();
}
else
{
تا اینجا گفتم اگر یکی از این ها تکراری باشه حداقل if اجرا شه و ثبت نشه . و گرنه اگه تو دیتابیس نیباشه else رو اجرا کن.
حالا من گیرم میخام خودمو اپدیت کنم. فقط ایمیلمو میزارم rig@gamil.com یعنی عوضش میکنم. حالا اسمم همون بمونه. اینجوری کوئری من به من گیر میده واسه تغییر دادن.
الان چیکار کنم؟
نقل قول: کد مربوز به ویرایش در صورت وجود دو فیلد غیر تکراری
<pre>SELECT TOP 1000 [PersonId]
,[PersonUserName]
,[PersonPassword]
,[PersonDate]
,[Email]
,[Mobile]
FROM [dbCodenevis].[dbo].[User]</pre>
من دارم یک جدول با فیلد های بالا .
حالا من قصد اپدیت کردن یک رکورد را دارم.
اما فیلد ایمیل است غیر تکراری .
وقتی من با شماره خودم وارد می شوم و می خواهم ایمیل خود را عوض کنم .
چگونه می توانم چک بکنم که این مقدار از قبل در فیلد دیگری نباشد؟
:(
نقل قول: کد مربوز به ویرایش در صورت وجود دو فیلد غیر تکراری
واقعا با این متنی که شما نوشتی باید یه وقتی بزاریم اول سوال شما رو متوجه بشیم بعد روی راه حل فکر کنیم.
اگر منظورت اینه که ایمیل یکتا باشه و در آپدیت چک بشه که قبلا چنین ایمیلی ثبت نشده باشه: کافیه غیر از خودت دیگر userها رو چک کنی تا چنین ایمیلی نداشته باشند
var db = new Database2Entities1();
User user =
(from u in db.User
where u.username == "MyUserName" && u.email == "OldEmail"
select u).SingleOrDefault();
if (user != null)
{
var pname =
from item in db.User
where item.email == "NewEmail" && item.username != "MyUserName"
select item;
if (pname.Any())
{
MessageBox.Show("ای ایمیل قبلا ثبت شده است");
}
else
{
user.email = "NewEmail";
db.SaveChanges();
}
}