تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: حرکت به عقب در دیتابیس در #C

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2007
    پست ها
    3

    پيش فرض حرکت به عقب در دیتابیس در #C

    با سلام

    من یه سوال خیلی ساده کارم اما نمی دونم چرا جوابشو تا حالا پیدا نکردم !

    من می خوام تو یک دیتابیس SQL تو #c تو رکوردها پیمایش کنم (به عقب و جلو برم) و شروط BOF و EOF رو تست کنم و Index رکورد رو داشته باشم
    برنامم حالت پردازشی داره یعنی فقط رو رکوردها پردازش می کنه و از کنترلهایی مثل Grid استفاده نمی کنم.

    ظاهرا که باید از Dataset استفاده کنم اما تو هیچ کدوم از متدهای Dataset و DataTable و DaraRow و ... همچین دستوری پیدا نکردم

    یک چیزی مثل متد Read تو DataReader اما با قابلیت حرکت به عقب
    این کار تو دلفی خیلی راحت انجام میشه اما اینجا نمیدونم چرا نیست !

    با تشکر فراوان

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    C#.Net به صورت پیشفرض به جای ADO از ADO.Net استفاده میکند، ودیگر EOF و BOF و... وجود ندارد.
    در ADO.Net شما یاباید از DataReader استفاده کنید، که یک خواننده پر سرعت ReadOnly روبه جلو است یا از DataAdapter و DataTable.
    (در واقع DataAdapte با کمک DataReader مخزن DataTable را پر میکند.)

    =====

    اگر مدام نمیخواهید در دیتاها عقب و جلو بروید، و یک بار خواندن برای شما کافی است DataReader بازدهی و سرعت بسیار دارد.
    برای خواندن برعکس هم شما به راحتی میتوانید دستور SQL اصلی را عکس کنید.
    یعنی تفاوت دو دستور زیر...
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    =====

    در غیر این صورت زوج DataAdapter و DataTable مطرح میشوند.
    بعد از Fill کردن، کلیه اطلاعات در قالب یک Collection-List از خصیصه DataTable.Rows در دسترس هستند.
    یعنی شما به راحتی میتوانید از Count تعداد کل سطرها را بخوانید و با دادن ایندکس به سطر مورد نظر دسترسی پیدا کنید، به راحتی دسترسی به یک آرایه !!!
    جلو و عقب و پرش و... !!!

    =====

    در نهایت اگر عاشق سیستم ADO و EOF و BOF و اینها هستید (فکر میکنم سرم درد میگیره و میخواهم DataReader خودمان را بقل کنم!) میتوانید از activex آن را در بستر COM به پروزه add reference کنید و از ان استفاده کنید.
    ولی پیشنهاد میکنم خودتان را با روشهای جدید منطبق کنید.

    موفق باشید.

  3. 2 کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2007
    پست ها
    3

    پيش فرض تشکر

    بسیار ممنون از جوابت

    کاری که من می خوام انجام بدم فکر کنم با ADo راحتتر باشه تا ADo.net
    چون یه خورده هم عجله ای هست.

    فقط اگه لطف کنی یه لینک یا توضیحی از این ADo تو #C بدی ممنون می شم تو Add Refrence تو Com چیزی پیدا نکردم.

    با سپاس
    Last edited by i2ib4sunshine; 23-05-2009 at 11:17.

  5. #4
    در آغاز فعالیت
    تاريخ عضويت
    Sep 2007
    پست ها
    3

    پيش فرض

    فکر کنم AdoDb باید تو using و Refrence اضافه کنم فقط کار باهاشو بلد نیستم !

  6. #5
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    برای استفاده از ado قدیمی باید مرجع زیر را اضافه کنید:
    Project->Add Reference->COM->Microsoft ActiveX Data Objects 2.8/6.0 Library

    متاسفانه فرصت کافی برای مطالب اموزشی ado ندارم.
    در ado باید connection بسازید و جواب پرس و جوها را در recordset بگیرد و با eof و bof حواستان به خروج ان از هر دو محدوده باشد و...

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

  7. #6
    داره خودمونی میشه ok.baby's Avatar
    تاريخ عضويت
    Mar 2009
    محل سكونت
    ایران
    پست ها
    71

    پيش فرض


    در غیر این صورت زوج DataAdapter و DataTable مطرح میشوند.
    بعد از Fill کردن، کلیه اطلاعات در قالب یک Collection-List از خصیصه DataTable.Rows در دسترس هستند.
    یعنی شما به راحتی میتوانید از Count تعداد کل سطرها را بخوانید و با دادن ایندکس به سطر مورد نظر دسترسی پیدا کنید، به راحتی دسترسی به یک آرایه !!!
    جلو و عقب و پرش و... !!!
    من 2 تا دکمه تو برنامه دارم که کار پیمایش رو برام انجام میدن ( بعدی و قبلی )

    بار اول که فرم لود میشه، اطلاعات سطر اول datatable ، توی لیبل های موجود تو فرم ریخته میشه و نمایش داده میشه...

    بعدش با کلیک روی دکمه بعدی، میخوام اطلاعات سطر بعدی رو بریزم توی lable ها... اما با کلیک روی این دکمه برنامه هیچکار نمیکنه ، ارور هم نمیده کجای کار مشکل داره؟
    اینم کدی که برای ریختن اطلاعات توی لیبل استفاده میکنم :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by ok.baby; 12-01-2013 at 06:22.

  8. #7
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    شما در کدتان همواره سطر صفر و یک فیلد خاص را خوانده اید، خیلی بدیهی است که ناوبری ندارید...
    برنامه از کجا بفهمد شما چه سطری را میخواهید نمایش دهید؟ قبلی؟ بعدی؟ 10 سطر جلوتر؟؟؟؟
    مثلاً باید یک عدد int را در سطح کلاس نگاه دارید که موقعیت سطر جاری را پس از کم و زیاد حفظ کند.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    تازه در نهایت باید حواستان باشد از محدوده تعداد سطرها خارج نشوید.

    پیشنهاد:
    شما یک BindingSource روی فرم تان قرار دهید و آن را به DataTable پرشده تان وصل کنید.
    سپس اجرای فرم را (از همان مد طراحی) bind کنید به bindingsource.
    (اینطوری حتی به کد یک خطی فوق هم نیازی نخواهید داشت)

    آنگاه bindingsource خود خصیصه Position و حتی MoveNext و امثال این را دارد.
    هم کد کمتری مینویسید و هم کدتان قابل اعتمادتر خواهد بود.
    موفق باشید.

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •