PDA

View Full Version : سوال: آخرین رکورد دیتابیس



silverado
پنج شنبه 07 اسفند 1393, 16:28 عصر
سلام
چطور آخرین رکورد دیتابیس را در یک textbox نشون بدم

ahmad abdoli
پنج شنبه 07 اسفند 1393, 23:07 عصر
سلام


خاصیت datasource=adodc1 و خاصیت datafield=name مربوط به text1 و این کد رو هم داخل form_load یا هر جایی دیگه که که می خوایید استفاده کنید.


Adodc2.RecordSource = "SELECT * FROM customer"
Adodc2.Recordset.MoveLast
Adodc2.Refresh

silverado
جمعه 08 اسفند 1393, 19:38 عصر
سلام . مرسی از راهنماییت اما منظور من این نبود
می خوام مثلا یه دکمه باشه وقتی میزنم روش آخرین رکورد دیتابیس رو که مثلا 0004 هست به اضافه یک کنه توی textbox نشون بده یعنی 0005

ahmad abdoli
شنبه 09 اسفند 1393, 06:40 صبح
پس دوست عزیز کد رو اینطوری تغییر بده


If Adodc1.Recordset.RecordCount <> 0 Then
Adodc1.Recordset.MoveLast
Text1.Text = Adodc1.Recordset.Fields("Radif") + 1
Else
Text1.Text = 1
End If

isaac23
چهارشنبه 05 فروردین 1394, 08:45 صبح
Text1.Text=Adodc1.Recordset.RecordCount+1

ایلیا آخوندزاده
پنج شنبه 06 فروردین 1394, 16:32 عصر
باسلام و درود
من با سورسی که کاربر عزیز isaac23 (http://barnamenevis.org/member.php?161794-isaac23) فرمودن موافقم اما چندتا نکته وجود داره که لازم به ذکره اول اینکه اگه بخواین دایما به روز باشه طبق معمول روی تایمر قرار داده بشه و دوم اینکه من از این کد در سیستم دبیرخانه استفاده کردم اما مشکلی به وجود اومد و اون اینکه وقتی تعداد رکورد های پایگاه دادم به 8000 رسید حدود 93 رکورد مغایرت تو محاسبه ایجاد شد که نمیدونم مشکلش از کجا بود.
موفق باشید

ahmad abdoli
جمعه 07 فروردین 1394, 02:29 صبح
سلام دوست عزیز توی این کدی که فرمودید

Text1.Text=Adodc1.Recordset.RecordCount+1

درست عمل می کنه ولی تا زمانی که هیچ رکوردی حذف نشه.

احتمالا مغایرت بوجود آمده هم به خاطر حذف رکورد باشه.

isaac23
جمعه 07 فروردین 1394, 07:16 صبح
میشه دقیق بگید پیغام خطا چیه و بذارید.. یا ازش عکس بگیرید.. و اگه ممکنه سوال رو بیشتر توضیح بدید واسه چه کاری می خواید.
ممنون

ایلیا آخوندزاده
دوشنبه 10 فروردین 1394, 03:11 صبح
باسلام
خطایی نمیداد فقط مغایرت به وجود میومد و سیستم دبیرخانه چون مال یک اداره دولتی بود اجازه حذف نداشت ولی پس از مدتی تلاش فقط با این روش تونستم مشکل رو رفع کنم و اون این بود که یک گرید جداگانه و بطور پنهان به پایگاه داده متصل کردم و یک ado و کانکشن مستقل براش ایجاد کردم و محاسبه رو روی اون تعریف کردم و دیگه به مشکلی برنخورد.من فکر میکنم عامل این مغایرت در واقع گرید هست چون با حرکت رو داده ها count ماهم تغییر میکنه و باعث بروز مغایرت میشه اما نکته گیج کننده اینه که چرا بعد از 8000 رکورد مغایرت بوجود میاره که لازم به ذکره پس از اون روشی که انجام دادم الان رکورد ها به 10000 رسیده ولی مشکلی پیش نیومده.

isaac23
دوشنبه 10 فروردین 1394, 17:31 عصر
ممنون از همکاری و راهنمائی دقیق شما

vbhamed
پنج شنبه 13 فروردین 1394, 10:39 صبح
باسلام
خطایی نمیداد فقط مغایرت به وجود میومد و سیستم دبیرخانه چون مال یک اداره دولتی بود اجازه حذف نداشت ولی پس از مدتی تلاش فقط با این روش تونستم مشکل رو رفع کنم و اون این بود که یک گرید جداگانه و بطور پنهان به پایگاه داده متصل کردم و یک ado و کانکشن مستقل براش ایجاد کردم و محاسبه رو روی اون تعریف کردم و دیگه به مشکلی برنخورد.من فکر میکنم عامل این مغایرت در واقع گرید هست چون با حرکت رو داده ها count ماهم تغییر میکنه و باعث بروز مغایرت میشه اما نکته گیج کننده اینه که چرا بعد از 8000 رکورد مغایرت بوجود میاره که لازم به ذکره پس از اون روشی که انجام دادم الان رکورد ها به 10000 رسیده ولی مشکلی پیش نیومده.

سلام
اگر منظور بدست آوردن تعداد رکوردها است نیازی به لود کردن کل رکوردها نیست، از دستور Sql زیر استفاده کنید تا تعداد رکوردها رو بگیرید
Select Count(*) As TedadRecord From TableName

اما در مورد Ado هم اول اون رو Refresh کنید بعد دستور Ado.Recordset.MoveLast رو بدین