PDA

View Full Version : __بازگرداندن کلید اصلی یک رکورد درج شده__



hrbaban
یک شنبه 01 شهریور 1388, 23:29 عصر
سلام . . .

من رکوردی را در پایگاه داده درج کردم .
کلید اصلی به صورت اتوماتیک یک عددی را تولید میکنه .

من چطوری میتونم کلید اصلی این رکورد را بعد از درج برگردونم ؟؟؟؟؟:متفکر:

seven7777777
دوشنبه 02 شهریور 1388, 00:21 صبح
خوب اگه کلید اصلی Auto Increment یا همون Identity هست که خوب بزرگترینش همون آخرین رکورد ثبت شده است .
اگه رندم تولید میشه دو تا کار میشه کرد ، یکی اینکه با هر ترتیبی از دیتابیس می خونی دقیقا آخرین رکورد رو انتخاب کنی یا واسه هر رکوردت یه تاریخ Insert قرار بدی و بعد بر طبق اون تاریخ آخرین رکورد رو پیدا کنی و کلید اصلیشو برداری .

hrbaban
دوشنبه 02 شهریور 1388, 00:36 صبح
خوب اگه کلید اصلی Auto Increment یا همون Identity هست که خوب بزرگترینش همون آخرین رکورد ثبت شده است .
اگه رندم تولید میشه دو تا کار میشه کرد ، یکی اینکه با هر ترتیبی از دیتابیس می خونی دقیقا آخرین رکورد رو انتخاب کنی یا واسه هر رکوردت یه تاریخ Insert قرار بدی و بعد بر طبق اون تاریخ آخرین رکورد رو پیدا کنی و کلید اصلیشو برداری .


این کار عاقلانه به نظر نمیاد .:چشمک:

باید یه راه حل دیگه براش پیدا کرد. :متفکر: :متفکر: :متفکر:

دهیاری
پنج شنبه 05 شهریور 1388, 07:28 صبح
با این کد:
select @@IDENTITY یا select @@SCOP_IDENTITY.

hrbaban
پنج شنبه 05 شهریور 1388, 12:43 عصر
با این کد:
select @@IDENTITY یا select @@SCOP_IDENTITY.


چطوری از این کد تو سی شارپ استفاده کنم ؟؟؟؟؟

k_m
پنج شنبه 05 شهریور 1388, 18:32 عصر
سلام
راه حلی که دادید در مورد برنامه های تحت شبکه کار ممکنه به مشکل بربخوره و همیشه بزرگترین کلید آخرین رکورد نیست.
به نظر من بهترین روش اینه که کلیدتون را ازنوع داده Guid استفاده کنید. دات نت تضمین می کنه مقداری که Generate میشه همواره یکتا باشه.این مقدار رو شما توی کدتون با استفاده از متد Guid.newGuid ایجاد می کنید و بعددرج اطلاعات رو انجام میدهید. مقدار کلید رو هم در کدتون دارید.