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

نام تاپیک: طراحی دیتا ریدر در سیستم سه لایه

  1. #1

    طراحی دیتا ریدر در سیستم سه لایه

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

  2. #2
    public DataTable selectinfo(string query)
    {
    try
    {
    if (dt != null)
    dt = null;
    com = new SqlCommand(query, con);
    con.Open();
    dr = com.ExecuteReader();


    }
    catch (Exception ex)
    {
    if (con.State == ConnectionState.Open)
    con.Close();
    System.Windows.Forms.MessageBox.Show(ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    if (!dr.HasRows)
    {
    con.Close();
    dr.Close();
    return null;
    }
    else
    return (dt);
    }


    این تابع رو تو لایه database بگذار و datatable رو return کن به لایه بیزنست یا اینترفیست.
    و هر بار که دوباره احتیاج داشتی به سرچ تابع selectinfo رو صدا بزن.

  3. #3
    اولا که تو کد شما هیچ کجا dt پر نشده. (یا من ندیدم )
    بعد هم نمیخوام یک تیبل پر کنم بفرستم. واسه اینکار از دیتا آداپتر استفاده میکنم
    میخوام هربار که دیتا ریدر یک رکورد میخونه یکاری انجام بدم با اون رکورد و بعد رکورد بعدی خونده بشه.
    ممنون

  4. #4
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    مثال ضمیمه شده اگر سوالی بود بفرمائید
    فایل های ضمیمه فایل های ضمیمه

  5. #5
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    مثال بالا آپدیت شد، فکر کنم این یکی مثال یکمی بهتر باشد.

  6. #6
    مثال قبلی که دیدم خوب نبود
    شما برای رویداد خواندن یک delegat ساخته بودید که باعث میشد حتما یک تابع براش تو برنامه درست کنیم. درواقع یک مرحله کار بیشتر شده بود (البته من اینجوری فهمیدم)
    منظورم

    private
    List<Person> GellAllNamesFromDB(IDataReader reader)

    هست.
    این مثالتون الان میبینم
    خیلی ممنون

  7. #7
    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    مثال بالا آپدیت شد، فکر کنم این یکی مثال یکمی بهتر باشد.
    کدوم یکی ؟ نه فایلی Attach شده و نه لینکی در جمله "مثال بالا آپدیت شد، فکر کنم این یکی مثال یکمی بهتر باشد." وجود داره

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  8. #8
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط night_fall2 مشاهده تاپیک
    کدوم یکی ؟ نه فایلی Attach شده و نه لینکی در جمله "مثال بالا آپدیت شد، فکر کنم این یکی مثال یکمی بهتر باشد." وجود داره
    همان مثال بالاست، قدیمیش را ورداشتم و جدیدش را گذاشتم.

  9. #9
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط Mrs.Net مشاهده تاپیک
    مثال قبلی که دیدم خوب نبود
    شما برای رویداد خواندن یک delegat ساخته بودید که باعث میشد حتما یک تابع براش تو برنامه درست کنیم. درواقع یک مرحله کار بیشتر شده بود (البته من اینجوری فهمیدم)
    منظورم

    privateList<Person> GellAllNamesFromDB(IDataReader reader)

    هست.
    این مثالتون الان میبینم
    خیلی ممنون
    دلایل استفاده از delegate زیرشان خط کشیده شده :

    نقل قول نوشته شده توسط Mrs.Net مشاهده تاپیک
    تو یک برنامه سه لایه چجوری میشه تو لایه بیزنس از یک دیتاریدر استفاده کرد؟
    میخوام با هربار خوندن یک سری عملیات رو اطلاعات انجام بدم و جاهی مختلف فرمم نمایش بدم. اما دیتا ریدر باید تو لایه دیتا ساخته بشه و خواندنش تو لایه بیزنس یا حتی لایه نمایش
    نقل قول نوشته شده توسط Mrs.Net مشاهده تاپیک
    نمیخوام یک تیبل پر کنم بفرستم. واسه اینکار از دیتا آداپتر استفاده میکنم
    میخوام هربار که دیتا ریدر یک رکورد میخونه یکاری انجام بدم با اون رکورد و بعد رکورد بعدی خونده بشه.
    اینکه یک مرحله کار بیشتر شده برایه این است که باید از خودتان بپرسید که این تابع جدید که اضافه شده، متعلق به کدام لایه باید باشه؟ داشتنش در لایه داتا به نظر درست نمیاد، اگر دلیل فقط برایه عوض کردن نحوه نمایش است در آن حالت میشه که در لایه نمایش باشه (ولی در این حالت میشه در لایه نمایش کد را نوشت و این کار آسان است و مثال لازم نداره). تنها حالت جالب وقتی است که یک متد باید بر رویه ریدر انجام انجام بشه و منطق متد متعلق به لایه بیزینس باشد.
    یکی از دلایل استفاده delegate اجرا کردن یک تیکه کد در یک قسمت دیگر میباشد، در بعضی زبانها به اینکار میگند کد اینجکشن و یا متد پئینتر در سی برایه همین کار استفاده میشند.

  10. #10
    من مثال رو دیدم!
    پایگاه داده ی اون access بود و من با sql کار می کنم!
    و BorrowReader در برنامه ی من غیر فعاله!

  11. #11
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط /asra/ مشاهده تاپیک
    من مثال رو دیدم!
    پایگاه داده ی اون access بود و من با sql کار می کنم!
    و BorrowReader در برنامه ی من غیر فعاله!
    ۱)فکر کنم منظورتان sql نیست و SqlServer است.
    ۲)اگر هدفتان از این پست این است که بپرسید چطوری یک این مثال را برایه SqlServer ویرایش بدید ، بگید جواب میدم.
    ۳)"و BorrowReader در برنامه ی من غیر فعاله!" معنی نمیده! یعنی چی غیره فعاله؟ مگر قراره چکار کند؟
    ۴)برایه توضیح‌ دادن مشکلتتان یکمی وقت بگذارید، برایه ۳ خطی که شما نوشتید باید ۶ خط پرسید که بفهمیم شما چی میخواهید، اگر شما برایه توضیح مشکلاتتان وقت نگذارید چطور میشه انتظار داشته باشید برایه جوابش دیگران وقت بگذارند؟

  12. #12
    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    ۱)فکر کنم منظورتان sql نیست و SqlServer است.
    ۲)اگر هدفتان از این پست این است که بپرسید چطوری یک این مثال را برایه SqlServer ویرایش بدید ، بگید جواب میدم.
    ۳)"و BorrowReader در برنامه ی من غیر فعاله!" معنی نمیده! یعنی چی غیره فعاله؟ مگر قراره چکار کند؟
    ۴)برایه توضیح‌ دادن مشکلتتان یکمی وقت بگذارید، برایه ۳ خطی که شما نوشتید باید ۶ خط پرسید که بفهمیم شما چی میخواهید، اگر شما برایه توضیح مشکلاتتان وقت نگذارید چطور میشه انتظار داشته باشید برایه جوابش دیگران وقت بگذارند؟
    اشکالی نداره من اصلاً ناراحت نشدم

    1)پروژه ی من سه لایه است، می خوام اطلاعات یه Table رو تو DataGridView نمایش بدم!
    2)فکر کنم یه راهش اینه که یه DataTable تعریف کنم و DataColumn و DataRow اون رو مقداردهی کنم و بعد اون رو به Interface بفرستم!
    3)روش شما جالب بود و می خوام از اون استفاده کنم!
    4)دارم از اون استفاده می کنم ولی چند تا مسئله باهاش دارم:
    I) در برنامه ام BorrowReader آبی نمیشه! نمی دونم BorrowReader چیه؟
    II)گفتم شاید چون من دارم با SqlServer کار میکنم این جوریه!
    III)نمی دونم delegate چیه؟
    IV)نمی خوام از روش شماره 2) استفاده کنم!

    خوب من این ها رو نمی دونم!
    من ازتون راهنمایی می خوام!

  13. #13
    دوستان کسی می تونه من رو راهنمایی کنه؟

  14. #14
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736
    نقل قول نوشته شده توسط /asra/ مشاهده تاپیک
    اشکالی نداره من اصلاً ناراحت نشدم

    1)پروژه ی من سه لایه است، می خوام اطلاعات یه Table رو تو DataGridView نمایش بدم!
    2)فکر کنم یه راهش اینه که یه DataTable تعریف کنم و DataColumn و DataRow اون رو مقداردهی کنم و بعد اون رو به Interface بفرستم!
    3)روش شما جالب بود و می خوام از اون استفاده کنم!
    4)دارم از اون استفاده می کنم ولی چند تا مسئله باهاش دارم:
    I) در برنامه ام BorrowReader آبی نمیشه! نمی دونم BorrowReader چیه؟
    II)گفتم شاید چون من دارم با SqlServer کار میکنم این جوریه!
    III)نمی دونم delegate چیه؟
    IV)نمی خوام از روش شماره 2) استفاده کنم!

    خوب من این ها رو نمی دونم!
    من ازتون راهنمایی می خوام!
    اگر دارید با دات نت ۳.۰ کار میکنید بیخیال این روشها دیگر قدیمی شدند، روشهایه جدید از LINQ استفاده میکنند.

    ۲(اآسانترین روش هم همینه و اگر پروژهتان را باید در زمان کمی تحویل بدید از همین روش استفاده کنید، این روشهایه ۳ لایگی برایه برنامه هایی که مدت زیادی باید استفاده بشند خوبه. برایه برنامه هایه کوچیک و یا یکبار استافاده نمیارزند.

    I)در تعریف DatServices.cs شده.
    II) یک فایل جدید به SqlServerDb.cs نامه بسازید و AccessDB.cs را نگاه بندازید و به جایه OleDbConnection از SqlConnection استفاده کنید

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

    IV)اگر دارید با دات نت ۳.۰ کار میکنید بیخیال این روشها دیگر قدیمی شدند، روشهایه جدید از LINQ استفاده میکنند.

  15. #15
    نقل قول نوشته شده توسط اَرژنگ مشاهده تاپیک
    IV)اگر دارید با دات نت ۳.۰ کار میکنید بیخیال این روشها دیگر قدیمی شدند، روشهایه جدید از LINQ استفاده میکنند.
    این استفاده از لینک خیلی جا نیفتاده من میخوام یه پروژه جدید رو باهاش استارت بزنم
    ولی راستش نمی دونم اینکه واقعا بخواهیم sp رو کنار بذاریم و کدهای sql رو توی لایه business بیاریم بد نیست؟
    در ضمن نمی دونم که واقعا فرقی میکنه که پروژه بزرگ باشه یا نه

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

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