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

نام تاپیک: یک DataAdapter برای همه Queryها

  1. #1

    یک DataAdapter برای همه Queryها

    با سلام خدمت دوستان گرامی

    چگونه می توان یک Data Adapter داشت و با تغییر commandtext مربوط به قسمت Select آن، در دفعات مختلف گزارش های مختلفی گرفت و از آن ها هم در برنامه استفاده کرد؟ :sad2:

    روشن کردن مطلب: :reading:
    من یک Data Grid دارم که به دو جدول از بانک اطلاعاتی می خواهم متصل بشه. وقتی کاربر کلید اول را کلیک کرد باید از جدول اول گزارش بده و وقتی کلید دوم، جدول دوم.
    این را هم می دانیم که هر جدول ستون‌های متفاوتی با جدول دیگر دارد.

    من این کار را انجام دادم، یعنی خاصیت CommandText مربوط به Select از Data Adapter را در کد برنامه تنظیم کردم و گزارش گرفتم و DataSet را پر کردم. در این مرحله دو مشکل داشتم
    1- جدولی به نام جدول دوم در DataSet وجود نداشت که من DataSource گرید خود را به آن ارجاع دهم
    2- اگر به جدول اول که در DataSet وجود دارد هم اشاره کنم (DataSource مربوط به گرید) هم فیلدهای جدول اول را نشان خواهد داد و هم فیلدهایی که جدول دوم.

    امیدوارم ملتفت شده باشید.

    خلاصه اینکه چون توی فرم من یک Tab page وجود دارد و هر صفحه آن می خواهد به یک قسمت از بانک اطلاعاتی وصل شود، چگونه می توانم یک Data Adapter و یک DataSet داشته باشم و با آن برای همه صفحه‌های Tab page بسته به نوع صفحه گزارش جدایی تهیه کنم.

    یادآور شوم که وقتی در کد برنامه وصل شدن به جدولی از DataSet را که در آینده قرار است در حین اجرا درست شود را قید می کنیم، با اجرای برنامه با خطا مواجه می شویم (خود سیستم هم زیر آن را خط زیگزاگ می کشد که یعنی این شی وجود ندارد)

    با احترام- خدانگهدار

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    فکر میکنم مشکل شما ناشی از صدا نزدن متد Clear مربوط به دیتاست قبل از پر کردن مجدد دیتاست است.

           dbAdapter.SelectCommand = dbCommand

    'getting query1 result
    dbCommand.CommandText = "SELECT * FROM Table1"
    dbAdapter.Fill(dbDataset)


    'getting query2 result
    dbDataset.Clear()
    dbCommand.CommandText = "SELECT * FROM Table2"
    dbAdapter.Fill(dbDataset)


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

    در صورتی که بخواید هر دو جدول رو به داخل دیتاست بیارید ،باید هر دو کوئری
    رو با هم اجرا کنید :

            dbAdapter.SelectCommand = dbCommand
    dbCommand.CommandText = "SELECT * FROM Table1" & vbCrLf & "SELECT * FROM Table2"
    dbAdapter.Fill(dbDataset)


    با استفاده از کد فوق ، هر دو جدول داخل دیتاست قرار میگیرند که میتونید با
    استفاده از ایندکس جدول مورد نظر ، اون رو به دیتاسورس گرید متصل کنید.

    مثلا
    DataGrid1.DataSource = dbDataset.Tables(0)

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

  1. استفاده از یک فیلد محاسباتی در DataAdapter
    نوشته شده توسط ehsan_ansaripoor در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 17 مرداد 1386, 18:24 عصر
  2. مشکل ایجاد queryمناسب برای رسم نمودار
    نوشته شده توسط mzamani در بخش گزارش سازی با Crystal Report
    پاسخ: 4
    آخرین پست: یک شنبه 26 آذر 1385, 10:03 صبح
  3. یک queryکه همه چیز داشته باشد
    نوشته شده توسط davoodmz در بخش برنامه نویسی در Delphi
    پاسخ: 25
    آخرین پست: سه شنبه 21 آذر 1385, 10:31 صبح
  4. بالا بردن performance در queryها
    نوشته شده توسط Elham_gh در بخش SQL Server
    پاسخ: 1
    آخرین پست: پنج شنبه 13 بهمن 1384, 13:55 عصر
  5. چگونه با استفاده از queryمیتوان combobox
    نوشته شده توسط prog_2005 در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: یک شنبه 27 شهریور 1384, 08:35 صبح

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

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