كمك در مورد فيلد تكراري در linq
با عرض سلام و خسته نباشيد خدمت مديران و كاربران عزيز
من يك نرم افزار ميخوام درست كنم كه يك فيلد رو به عنوان كليد اصلي انتخاب كرده ام و وقتي كه يك اسم تكراري وارد مي كنم هنگ مي كنه و خارج ميشه و وقتي كليد اصلي رو برمي دارم به درستي كار ميكنه و مي خواستم چگونه به جاي هنگ كردن و خارج شدن از برنامه يك پيغام ظاهر بشه كه بگه همچنين نامي در قبل به ثبت رسيده است.
و از LINQ استفاده كرده ام
در ضمن نام بانك اطلاعاتي من web هست و نام جدول gh است و فيلد مورد نظر gaddress است لطفا كمكم كنيد
با تشكر
موفق باشيد.
نقل قول: كمك در مورد فيلد تكراري در linq
شما می تونید از try catch استفاده کنید یا اینکه قبل از اینکه متد SaveChanges رو صدا بزنید یه سرچ توی دیتابیس بزنید ببنید همچین فیلدی ثبت شده یا نه؟
نقل قول: كمك در مورد فيلد تكراري در linq
try
}
.................
db.submitchangs)(;
{
catch(expection ex(
}
messgebox("ex.messge"(;
نقل قول: كمك در مورد فيلد تكراري در linq
ميشه يه توضيحي در مورد اين كد بالا بدين
نقل قول: كمك در مورد فيلد تكراري در linq
شما بعد از اجرای دستور قبلی و بدست آوردن مقدار IsInDB از کد زیر استفاده کن:
if (!IsInDB)
{
//ثبت رکورد جدید
}
else
MessageBox.Show("این آدرس قبلا ثبت شده");
نقل قول: كمك در مورد فيلد تكراري در linq
اینکه تازه کار هستین منطقی هست که سوالتون رو درست مطرح نکنید. امیدوارم با این توضیحات از این به بعد بهتر بتونید صورت سوال رو در یک پست طوری مطرح کنید که قابل فهم باشه و زود به جواب برسید.
کمی بیشتر وقت بذارید و سوال رو بصورت کامل مطرح کنید بگید که از چه تکنولوِژی استفاده می کنید اینجا شما از LINQ استفاده کردید در صورتیکه باید دقیقا بگید LINQ TO SQL یا Entity Framework.اگه کدتون ایراد داره حتما اون قطعه کد رو بذارید و بگید چه خطایی می ده و دقیقا متن خطا رو هم بذارید.
در مورد خطا احتمالا خطای Duplicate داده می شه دلیلشم اینکه شاید کلید اصلی رو مقدار دهی نمی کنید و هر دفه با مقدار پیش فرض ذخیره می شه در نتیجه این مقدار تکراری هست. در این حالت دو کار می تونید انجام بدید یا بطور دستی مقدار دهی کنید (که باید دقت کنید تکراری نباشه مثلا از Guid استفاده کنید) یا اینکه این کار رو بر عهده دیتابیس قرار بدین یعنی identity یا ... تعریف کنید
در ضمن سوالتون رو در تالار دسترسی به داده ها مطرح کنید.