PDA

View Full Version : روش اصولی به دست آوردن کد رکورد جدید ثبت شده



ztx4
شنبه 23 بهمن 1389, 04:35 صبح
سلام دوستان
من نیاز دازم تا دز برنامه ام ابتدا رکوردی رو در جدول 1 ثبت کنم بعد کد اختصاصی مربوط به اون رکورد رو به دست بیارم.فیلد کد توسط خود SQL به جدولم اضافه می شه.Identity Increasment اش رو 1 در نظر گرفتم.
من با این کد اختصاصی، در بخش های دیگه ی برنامه، اطلاعات رو در جداول مربوط به جدول1 می نویسم.
من این روش رو به کار بردم:

اول با یک دستور INSERT رکورد مورد نظر رو ثبت می کنم.
سپس با این دستور کد رکورد آخر رو به دست میارم:


select max(stude.studecode) from stude

این روش کار می کنه اما به نظر خودم یه جوریه.زیاد دلجسب نیست.مخصوصا اینکه برنامه ام در آینده قراره توسط چند کاربر به طور همزمان استفاده بشه.

نظر شما دوستان چیه؟
چه روشی رو پیشنهاد می کنید.
چون برنامه ام C# هستش اینجا مطرح کردم نه در بخش sql
مرسی وممنون

mahdi bg
شنبه 23 بهمن 1389, 05:57 صبح
سلام
بهترین راه استفاده از خود sql هستش
البته باید دستور insert رو با stored procedure بنویسید.
اگر روش کار با stored procedure رو نمیدونید با یک سرچ راحت بدست می آید

صادق صدقی
شنبه 23 بهمن 1389, 12:37 عصر
سلام
آره stored proceduer خوبه
شما هنگامی که ثبت کردی یک روکودت رو
خط بعد بنویس
یعنی:
insert into tabble ................
select top(1) id From Table order bu id desc
این میاد آخرین رکرود ثبت شدت رو بر می گردونه در ان واحد

بعد تو رویداد دکمت بجای گفتن executeNoneQuery بگو executeReadre
بعد یک دیتا ریدر می خوای که آیدی رو بخونی
این مطمئن ترینه
حداقل اگه رویه سایت باشه
همزمان ثبت نام کنن
آیدی خوده فرد برگشت داده می شه!!!!!

من ازاین روش استفاده کردم

mehdi.mousavi
شنبه 23 بهمن 1389, 12:47 عصر
سلام.
برای اینکار، می تونید بدین شکل عمل کنید:


INSERT INTO MyTable([Col1]) VALUES(@Col1Value);
RETURN SCOPE_IDENTITY()

در واقع خط اول Record رو در جدول ذخیره کنید، سپس در خط دوم با استفاده از SCOPE_IDENTITY() فیلد ID ی خودکار تولید شده برای رکورد تازه اضافه شده به جدول رو دریافت کنید.

موفق باشید.

پاورقی: لطفا سوالات مربوط به پایگاه داده رو در بخش خودش مطرح کنید و نه C#.