سلام
من می خوام آخرین رکوردی که توی یک جدول در دیتابیس ذخیره شده رو هنگام لود فرم
توی یک تکست باکس نشون بدم
چطوری میشه ان کار رو کرد؟؟؟؟؟؟
لطفا اگه کسی می تونه کمک کنه
سلام
من می خوام آخرین رکوردی که توی یک جدول در دیتابیس ذخیره شده رو هنگام لود فرم
توی یک تکست باکس نشون بدم
چطوری میشه ان کار رو کرد؟؟؟؟؟؟
لطفا اگه کسی می تونه کمک کنه
خوب باید بعد از انجام ارتباطات و خواندن اطلاعات جدول وقرار دادن آن داخل dataset , و ارتباط با data view آخرین رکورد را از dataview بخونی و نشان بدی
اگر با فرض اینکه جدول ما 2 فیلد داره و دیتابیس ما SQL Server باشه بصورت زیر میتونین آخرین رکورد رو برگردونین :
با توجه به تعداد فیلد ها این کارو باید تکرار کنید
DataTable dt = new DataTable();
string id;
string bookname;
id = dt.Rows[dt.Rows.Count - 1]["ID"].ToString();
bookname = dt.Rows[dt.Rows.Count -1]["BookName"].ToString();
Mobin Ranjbar
Software Engineer, Big Data Evangelist and Startup Guy
www.linkedin.com/in/mobinranjbar
www.MobinRanjbar.com
www.Hadoop.ir
www.BigDataWatcher.com
< به سوالات و درخواست هایی مبنی بر ارسال سورس کد ، نوشتن برنامه و ... از طریق پیام خصوصی پاسخ داده نمی شود >
id = dt.Rows[dt.Rows.Count - 1]["ID"].ToString();حالا اگر فیلد ID بصورت Auto Increment تعریف نشده باشه ، اونوقت چی ؟؟
اگه با data viwe بخواهیم بنویسیم هم میشه.؟
دستوراتش ر ا اگه دارین بزارین
Mobin Ranjbar
Software Engineer, Big Data Evangelist and Startup Guy
www.linkedin.com/in/mobinranjbar
www.MobinRanjbar.com
www.Hadoop.ir
www.BigDataWatcher.com
< به سوالات و درخواست هایی مبنی بر ارسال سورس کد ، نوشتن برنامه و ... از طریق پیام خصوصی پاسخ داده نمی شود >
مواردی که دوستان گفتند درسته فقط یه مشکل کوچیک داره!! اونم اینه که اگه توی بانک تعداد رکوردها زیاد باشه (مثلا چند میلیون رکورد) و برنامه هم تحت شبکه و یا وب باشه داده های زیادی باید به کلاینت منتقل بشه که این زمان زیادی میگیره، حتی اگه برنامه ، یه WinApp ساده با تعداد رکورد بالا باشه بازم زمانگیر میشه.
بهتره کوئری رو طوری بنویسی که فقط یک رکورد رو برگردونه.
اگر آخرین رکورد بر اساس ترتیب فیلد خاصی باشه که کار احته کافیه اول بصورت نزولی مرتب بشه بعد اولین رکورد خونده بشه
Select Top 1 * From TableName Order By FieldName Desc
ولی اگه آخرین رکورد فقط براساس زمان ثبت باید پیدا بشه میشه از روشی مثل روش زیر استفاده کرد:
SELECT *,ID_Num = IDENTITY(int, 1, 1) into #temp from TableName
select * from #temp where ID_num=@@rowcount
drop table #temp
این روش هم یه مقدار زمانگیره ولی چون این عملیات تماما توی بانک انجام میشه سرعت اجرای بهتری داره.
اگه تو بانک فیلد increment داشته باشیم و بخواهیم اطلاعات درج کنیم اگه مقداردهی واسه اون فیلد انجام ندیم خودش به صورت اتوماتیک واسه اون فیلد مقدار بعدی ر ا نمی زاره ؟؟؟؟؟؟؟
چرا اینجوری ؟
؟
؟
منم همین مشکل را دارم کسی میتونه کمک کنه
منم میخوام اخرین رکورد را بدون رفرش صفحه نشون بده
شما خیلی راحت تعداد سطراتو بشمار و بعد منهای یک کن اینجوری آخرین رکوردی که ثبت شده را نمایش میده :
int total = ba.select_ashkhas().Rows.Count;
اینجا من از معماری سه لایه استفاده کردم ولی مشخص هست که یه دستور سلکت که داشتم رو اجرا کردم و بعد تعداد سطرهارو گرفتم گذاشتم تو متغیرم و بعد برا نمایش هم باید این مقدار را منهای یک کنی مثل این :
tname.Text = ba.select_ashkhas().Rows[total - 1]["name"].ToString();
البته با این دستور هم در دیتابی اکسس میتونی اخرین رکورد رو به شرط اینکه یه فیلد اتو نامبر داشته باشی بر گردونی :
Select top 1 *
from ashkhas
order by ID desc