نمایش نتایج 1 تا 17 از 17

نام تاپیک: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

  1. #1
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    Unhappy به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    با سلام
    دوستان من میخوام آی دی آخرین رکورد ثبت شده در جدولم رو به دست بیارم.زبان برنامه نویسی که استفاده میکنمASPهست و ارتباط از طریق LINQ انجام شده.(ستون ID به صورت خودکار مقدار دهی میشه.یعنی به ازای هر رکورد یک واحد به آن اضافه میشود!)
    خواهشا کمک کنید...

  2. #2
    کاربر دائمی آواتار mamad174
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    اهواز
    پست
    194

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    سلام کلا برای پیدا کردن آخرین رکورد باید اینطور عمل بشه به طور مثال من می خوام آی دی آخرین رکورد رو داخل یک لیبل نشون بدم

    label1.text=dt.rows[dt.rows.count-1]["نام فیلد"]


    البته این LINQ نیست ولی در کل این طور میشه که داخل قسمت اول دیتا تیبل که شماره سطر رو باید قرار بدی شما به جای شماره سطر تعداد رکوردها -1 رو قرار بده میبینی به آخرین رکورد جدول اشاره میکنه موفق باشی

  3. #3
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط mamad174 مشاهده تاپیک
    سلام کلا برای پیدا کردن آخرین رکورد باید اینطور عمل بشه به طور مثال من می خوام آی دی آخرین رکورد رو داخل یک لیبل نشون بدم

    label1.text=dt.rows[dt.rows.count-1]["نام فیلد"]


    البته این LINQ نیست ولی در کل این طور میشه که داخل قسمت اول دیتا تیبل که شماره سطر رو باید قرار بدی شما به جای شماره سطر تعداد رکوردها -1 رو قرار بده میبینی به آخرین رکورد جدول اشاره میکنه موفق باشی
    سلام
    ممنون از جوابتون
    راه دیگه ای وجود نداره که نخوام از دیتا تیبل استفاده کنم؟؟؟

  4. #4

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    با سلام

      int last = (from it in datacontext.UserDatas
    select it.ID).Max();

  5. #5
    کاربر دائمی
    تاریخ عضویت
    مهر 1388
    محل زندگی
    کرمانشاه
    سن
    37
    پست
    735

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

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

  6. #6
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط Majid.Stu66 مشاهده تاپیک
    با سلام

      int last = (from it in datacontext.UserDatas
    select it.ID).Max();
    سلام
    ممنون از جوابتون
    بالاخره بعد از امتحان کردن انواعِ کوئری ها این کد بهم جواب داد...
    ولی خیلی دوست داشتم از استورپروسیجر برای به دست آوردن آخرین آی دی استفاده کنم
    راهی وجود داره؟؟؟

  7. #7
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

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

  8. #8

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    ولی خیلی دوست داشتم از استورپروسیجر برای به دست آوردن آخرین آی دی استفاده کنم
    راهی وجود داره؟؟؟
    با سلام مجدد
    پروسیجری که باید نوشته شه :
    Create PROCEDURE LastRecordID(@output int OUTPUT)
    AS
    BEGIN
    set @output=(select Max(ID) From UserData)
    END

    در برنامه دو خط کد زیر استفاده میشه و مقدار بازگشتی در متغیر ارسال شده به پروسیجر قرار می گیره

    int? MaxId = -1;
    datacontext.LastRecordID(ref MaxId);

  9. #9
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط Majid.Stu66 مشاهده تاپیک
    datacontext.LastRecordID(ref MaxId);[/CODE]
    باز هم ممنون
    میشه توضیح بدین برای چی از ref استفاده کردید؟؟؟

  10. #10

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    قبل از پاسخ به سوال شما :
    معمولا برای استخراج تک مقدار از فانکشن استفاده می کنن که پیاده سازی فانکش عملکرد مورد نظر شما بصورت زیر هستش

    Create FUNCTION MaxID()
    RETURNS int
    AS
    BEGIN
    Declare @Out int
    Set @Out=(select Max(ID) From UserData)
    RETURN @Out
    END

    کد مورد استفاده در برنامه

    int? ID = datacontext.MaxID();


    بازگشت مقدار از پروسیجر با دستور سلکت صورت می گیره و از نوع
    ISingleResult<LastIDResult>

    هستش که اگه بخوایم به این صورت پروسیجر رو استفاده کنیم کد نوشته شده در سمت برنامه بصورت زیر :

    ISingleResult<LastIDResult> Maxid = datacontext.LastRecordID();
    foreach (LastIDResult item in Maxid)
    {
    MessageBox.Show(item. LastRecID.ToString());
    }


    و پروسیجر به شکل :

    Create PROCEDURE LastRecordID
    AS
    BEGIN
    select Max(ID) As LastRecID From UserData
    END

    خواهد بود .
    در پاسخ به سوال شما برای اینکه یه مقدار کاهش کد داشته باشیم و بصورت فوق کد نویسی نکنیم متغیر رو به شکل کال بای ریفرنس (فراخوانی با ارجاع) به پروسیجر ارسال می کنیم که داخل پروسیجر مقدارش عوض شه و از اون مقدار در برنامه استفاده کنیم. این نوع فراخوانی نیاز به مقدار دهی متغیر قبل از ارسال داره ، به همین خاطر قبل از ارسال مقدار منفی یک بهش نسبت داده شده . اگر هیچ رکوردی در جدول وجود نداشته باشه مقدار بازگشتی از پروسیجر نال خواهد بود . در نتیجه باید بعد از فراخوانی مقدار متغیر رو بررسی کرد که نال نباشه بعد ازش استفاده کرد .

    در پایان از دوستان خواهش می کنم هر جاش رو اشتباه گفتم اصلاح کنن.

  11. #11
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    از توضیح کاملی که دادین ممنونم...
    خیلی بهم کمک کرد...

  12. #12
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    استفاده از تابع Max اصلا بهینه نیست ، بخصوص اینکه تعداد رکوردهای ما زیاد باشه. SqlServer بین تمامی رکوردها میگرده و بیشترین مقدار رو بر میگردونه و این اصلا چیز خوبی نیست. کاربرد تابع Max در برگردندن آخرین Id نیست بلکه کاربرد این تابع برگردوندن بیشترین مقدار از یک ستون برای ماست مثلا کاربر صحیح میتونه استفاده از این تابع برای گرفتن بیشترین امتیاز یک کاربر هست.

    برای برگردوندن Id آخرین رکورد ثبت شده از
    SELECT SCOPE_IDENTITY()
    استفاده کنید.

  13. #13

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    از توضیح کاملی که دادین ممنونم...
    خیلی بهم کمک کرد...
    خواهش می کنم ولی گفته این دوست عزیز رو هم در نظر بگیرید.
    استفاده از تابع Max اصلا بهینه نیست ، بخصوص اینکه تعداد رکوردهای ما زیاد باشه. SqlServer بین تمامی رکوردها میگرده و بیشترین مقدار رو بر میگردونه و این اصلا چیز خوبی نیست. کاربرد تابع Max در برگردندن آخرین Id نیست بلکه کاربرد این تابع برگردوندن بیشترین مقدار از یک ستون برای ماست مثلا کاربر صحیح میتونه استفاده از این تابع برای گرفتن بیشترین امتیاز یک کاربر هست.
    با سلام خدمت دوست گرامی alireza_s_84
    گفته شما کاملا درست هستش . هر چیزی رو باید در جای خود به کار برد.
    در رابطه با
    SELECT SCOPE_IDENTITY()

    آیا باید همراه با یک دستور
    Insert
    بکار برده بشه تا آخرین مقدار رو بر گردونه یا بصورت تنها مقدار مورد نظر رو بر می گردونه ؟
    چون تا جایی که من متوجه شدم تو استفاده از این تابع بحث میدان دید ( اسکوپ ) که می تونه تابع ، پروسیجر ، تریگر و غیره باشه و بحث
    ُSession
    که پایگاه داده هستش پیش میاد . و این تابع باید درون اسکوپ به همراه یک دستور
    insert
    باشه که مورد استفاده دوستمون فقط گرفتن آخرین مقدار هستش نه دستور
    Insert
    .
    ممنون میشم اگه توضیح بدید.
    آخرین ویرایش به وسیله Majid.Stu66 : جمعه 27 دی 1392 در 17:36 عصر

  14. #14
    کاربر جدید آواتار farzaneh_bala
    تاریخ عضویت
    دی 1392
    محل زندگی
    اصفهان
    پست
    27

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط alireza_s_84 مشاهده تاپیک
    استفاده از تابع Max اصلا بهینه نیست ، بخصوص اینکه تعداد رکوردهای ما زیاد باشه. SqlServer بین تمامی رکوردها میگرده و بیشترین مقدار رو بر میگردونه و این اصلا چیز خوبی نیست. کاربرد تابع Max در برگردندن آخرین Id نیست بلکه کاربرد این تابع برگردوندن بیشترین مقدار از یک ستون برای ماست مثلا کاربر صحیح میتونه استفاده از این تابع برای گرفتن بیشترین امتیاز یک کاربر هست.

    برای برگردوندن Id آخرین رکورد ثبت شده از
    SELECT SCOPE_IDENTITY()
    استفاده کنید.
    درسته....اینو همون دیشب امتحان کردم...
    ولی یکم با فهمیدنش مشکل دارم...

  15. #15
    کاربر دائمی آواتار alireza_s_84
    تاریخ عضویت
    فروردین 1386
    محل زندگی
    اهواز
    پست
    1,191

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط Majid.Stu66 مشاهده تاپیک
    خواهش می کنم ولی گفته این دوست عزیز رو هم در نظر بگیرید.
    با سلام خدمت دوست گرامی alireza_s_84
    گفته شما کاملا درست هستش . هر چیزی رو باید در جای خود به کار برد.
    در رابطه با
    SELECT SCOPE_IDENTITY()

    آیا باید همراه با یک دستور
    Insert
    بکار برده بشه تا آخرین مقدار رو بر گردونه یا بصورت تنها مقدار مورد نظر رو بر می گردونه ؟
    چون تا جایی که من متوجه شدم تو استفاده از این تابع بحث میدان دید ( اسکوپ ) که می تونه تابع ، پروسیجر ، تریگر و غیره باشه و بحث
    ُSession
    که پایگاه داده هستش پیش میاد . و این تابع باید درون اسکوپ به همراه یک دستور
    insert
    باشه که مورد استفاده دوستمون فقط گرفتن آخرین مقدار هستش نه دستور
    Insert
    .
    ممنون میشم اگه توضیح بدید.
    SOCPE_ADENTITY رو میتونید بعد از Insert به کار ببرید و برای جاهای دیگه میتونید از توابع دیگه ای مثل IDENT_CURRENT و IDENTITY@@ استفاده کنید.
    هر سه ی این توابع یک کار انجام میدن در رابطه با حوزه و جلسه تفاوت هایی باهم دارن. برای مثال SCOPE_ADENTITY محدود به جلسه جاری میشه ولی IDENTITY@@ محدودیتی نداره.
    در واقع بهترین گزینه برای داشتن آخرین ID در یک جدول استفاده از:
    IDENT_CURRENT( 'table_name' )

    هست که نه به اسکوپ محدود میشه و نه جلسه بلکه به جدولی که اسم میبریم محدود میشه.
    میتونید توی این لینک اطلاعات بیشتری کسب کنید:
    http://technet.microsoft.com/en-us/l.../ms190315.aspx

  16. #16

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط alireza_s_84 مشاهده تاپیک
    SOCPE_ADENTITY رو میتونید بعد از Insert به کار ببرید و برای جاهای دیگه میتونید از توابع دیگه ای مثل IDENT_CURRENT و IDENTITY@@ استفاده کنید.
    هر سه ی این توابع یک کار انجام میدن در رابطه با حوزه و جلسه تفاوت هایی باهم دارن. برای مثال SCOPE_ADENTITY محدود به جلسه جاری میشه ولی IDENTITY@@ محدودیتی نداره.
    در واقع بهترین گزینه برای داشتن آخرین ID در یک جدول استفاده از:
    IDENT_CURRENT( 'table_name' )

    هست که نه به اسکوپ محدود میشه و نه جلسه بلکه به جدولی که اسم میبریم محدود میشه.
    میتونید توی این لینک اطلاعات بیشتری کسب کنید:
    http://technet.microsoft.com/en-us/l.../ms190315.aspx
    ممنون از پاسخ تون

  17. #17

    نقل قول: به دست آوردن آی دی آخرین رکورد ثبت شده در دیتا بیس

    نقل قول نوشته شده توسط Majid.Stu66 مشاهده تاپیک
    با سلام

      int last = (from it in datacontext.UserDatas
    select it.ID).Max();
    خیلی ازتون بابت پاسختون متشکرم

تاپیک های مشابه

  1. نمایش آخرین رکورد ثبت شده
    نوشته شده توسط c4soft در بخش Access
    پاسخ: 7
    آخرین پست: سه شنبه 06 مهر 1389, 23:16 عصر
  2. سوال: پیدا کردن آخرین رکورد ثبت شده از یک جنس خاص
    نوشته شده توسط f_g1348 در بخش SQL Server
    پاسخ: 4
    آخرین پست: چهارشنبه 11 فروردین 1389, 22:55 عصر
  3. آخرین رکورد ثبت شده توسط کاربر در بانک رو چطور پیدا کنم
    نوشته شده توسط محمد دادودنیا در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 12
    آخرین پست: دوشنبه 19 بهمن 1388, 23:01 عصر
  4. مبتدی: بدست آوردن آی دی آخرین رکورد درج شده
    نوشته شده توسط milad.biroonvand در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 06 آبان 1388, 17:53 عصر
  5. سوال: نشان دادن آخرین رکورد ثبت شده
    نوشته شده توسط ITST-1 در بخش Access
    پاسخ: 1
    آخرین پست: شنبه 08 تیر 1387, 12:07 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •