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

نام تاپیک: اشكال اين كد در كجاست

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    ایران
    پست
    60

    اشكال اين كد در كجاست

    با سلام به دوستان و همكاران محترم

    من كد زير رو با اين هدف نوشتم كه مقدار فيلدهاي يك ديتا ست رو
    در يك استراكچر بريزم. همانطور كه ميبنيد تمام برنامه ها رو به شكلي نوشتم كه قابل استفاده درهمه جا باشه
    مشكل من اينه كه اطلاعات از ديتا ست خوانده ميشه ولي در استراكچر قرار نميگيره
    لطفا راهنمايي كنيد كه اشكال اين كد در كجاست

    توجه : نام و ترتيب و نوع فيلدهاي ديتاست دقيقا مشابه نام- ترتيب و نوع فيلدهاي استراكچر ميباشد
    DS نام ديتا ستي است كه اطلاعات در آنجا قراردارد
    Stru_Employee نام استراكچري است كه حلقه بايد آنرا با اطلاعات موجود در ديتا ست پركند





    Dim ObjInfo AsNew Stru_Employee

    ItemCounter = 0
    ForEach f As System.Reflection.FieldInfo InGetType(Stru_Employee).GetFields
    Dim Amount = ds.Tables(0).Rows(0).Item(ItemCounter)
    ItemCounter = ItemCounter + 1

    f.SetValue(ObjInfo, Amount)

    Next


  2. #2
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile نقل قول: اشكال اين كد در كجاست

    دقيقاً نفهميدم که چي کار ميخواي بکني ولي فک ميکنم برا اين مدل کار بهتره از Interface استفاده کني

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    ایران
    پست
    60

    نقل قول: اشكال اين كد در كجاست

    مشغول توسعه دادن نرم افزاري هستم كه فردي ديگري نوشته بوده
    اين برنامه براي خواندن اطلاعات از بانك اطلاعاتي اول يك ديتا ست رو پر ميكنه
    و بعد اطلاعات ديتا ست رو در يك استراكچر ميريزه و به فرم فراخواننده ارسال ميكنه
    فرمها به ديتا ست دسترسي ندارند بلكه فقط به يك استراكچر كه يك رديف داره دسترسي
    دارند.روش فعلي عملكرد نرم افزار به اين شكله
    Structure.item1=dataset.tables(0).rows(0).item1
    Structure.item2=dataset.tables(0).rows(0).item2
    Structure.item3=dataset.tables(0).rows(0).item3
    اين روش وقتيكه داراي 50 يا 100 فيلد هستيد خيلي مسخره ميشه و من تصميم دارم با
    نوشتن يك حلقه اينكار رو انجام بدم.

  4. #4
    کاربر دائمی آواتار Dariuosh
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ایران - تهران
    پست
    448

    Smile نقل قول: اشكال اين كد در كجاست

    خوب اگه کد نفر قبلي اشتباهه يا ناکارامده مجبور نيستي متحمل يه سري کارايي بشي ، که احتمالاً خودشون هم اشتباه باشن
    به نظرم اون قسمتهايي رو که ميبيني مشکل داره مجدد يه فکري به حالشون بکون چون اينجور موقع ها شما برا پوشوندن اشتباهات مجبور ميشي يه سري اشتباهه ديگه مرتکب شي ، که بالاخره يه جايي تو کار گير ميکني که اون موقع حتي شايد بي خيال پروژه بشي و بعد از اونهمه زحمت ولش کني

    قاعدتاً شما به ازائ هر DataTable بايد يه استراکچر داشته باشي درسته ؟
    اگه اينجوري باشه ديگه چه فايده ايي داره اين کاري که ميخواي بکني ؟

  5. #5
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: اشكال اين كد در كجاست

    نقل قول نوشته شده توسط Dariuosh مشاهده تاپیک
    دقيقاً نفهميدم که چي کار ميخواي بکني ولي فک ميکنم برا اين مدل کار بهتره از Interface استفاده کني
    یکبار دیگه مطالب مربطو به OOP را مرور کنید

  6. #6
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: اشكال اين كد در كجاست

    نقل قول نوشته شده توسط kavehYn مشاهده تاپیک
    با سلام به دوستان و همكاران محترم

    من كد زير رو با اين هدف نوشتم كه مقدار فيلدهاي يك ديتا ست رو
    در يك استراكچر بريزم. همانطور كه ميبنيد تمام برنامه ها رو به شكلي نوشتم كه قابل استفاده درهمه جا باشه
    مشكل من اينه كه اطلاعات از ديتا ست خوانده ميشه ولي در استراكچر قرار نميگيره
    لطفا راهنمايي كنيد كه اشكال اين كد در كجاست

    توجه : نام و ترتيب و نوع فيلدهاي ديتاست دقيقا مشابه نام- ترتيب و نوع فيلدهاي استراكچر ميباشد
    DS نام ديتا ستي است كه اطلاعات در آنجا قراردارد
    Stru_Employee نام استراكچري است كه حلقه بايد آنرا با اطلاعات موجود در ديتا ست پركند





    Dim ObjInfo AsNew Stru_Employee
    ItemCounter = 0
    ForEach f As System.Reflection.FieldInfo InGetType(Stru_Employee).GetFields
    Dim Amount = ds.Tables(0).Rows(0).Item(ItemCounter)
    ItemCounter = ItemCounter + 1
    f.SetValue(ObjInfo, Amount)

    Next
    اگر از استراکچر یا کلاس استفاده می کنید این دیتاست این وسط چکاره هست؟
    یک زمانی طول می کشه تا دیتاست پر شده یک زمانی هم طول می کشه شما ساختار خودتان را با اطلاعات دیتاست پر کنید!
    اگر از 2008 استفاده می کنید از linq استفاده کنید اگر هم از 2005 استفاده می کنید با استفاده از sqlcommand و sqldatareader ساختار خودتان را پر کنید.
    این روش هم بنظرم روش خوبی نیست. حالا فوقش یک تیبل می خواهد 20 تا فیلد داشته باشه، اگر هر کدام را کد بنویسید راحتر هستید.

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1386
    محل زندگی
    ایران
    پست
    60

    نقل قول: اشكال اين كد در كجاست

    اين برنامه مربوط به پرونده هاي پرسنلي و مواردي از اين قبيله كه هميشه
    يك ركورد بايد از بانك خونده بشه.
    اطلاعاتي كه از بانك اطلاعاتي خونده ميشن در يك ديتا ست قرار داده ميشه و از
    يك لايه پايين برنامه برگشت داده ميشه .در لايه ديگري اطلاعات ديتا ست در يك استراكچر
    قرار داده ميشه و به فرم فراخواني كننده ارسال ميشه

    فرمايش شما دوستان صحيحه ولي لطفا توجه كنيد كه اين برنامه تعداد
    زيادي تيبل داره و اگر قرارباشه براي هرجدولي كه بوجود مياد مجبور باشم كه
    اون كدهاي
    Structure.item1=dataset.tables(0).rows(0).item1
    Structure.item2=dataset.tables(0).rows(0).item2
    Structure.item3=dataset.tables(0).rows(0).item3

    Structure.item100=dataset.tables(0).rows(0).item10 0

    رو بنويسم كار مشكل و وقتگيري ميشه در حاليكه اگر بتوانم يك تابع بنويسم كه
    يك ديتا ست و يك استراكچر رو بعنوان ورودي بگيره و ديتاست رو در فيلدهاي متناظر
    در استراكچر قرار بده خيلي سريعتر برنامه من نوشته ميشه
    همونطور كه گفتم كدي كه در بالا نوشتم كد نوشته شده فقط يك خطش اشكال داره
    f.SetValue(ObjInfo, Amount)
    مقدار در فيلدAmount موجوده ولي نميدونم كه بجاي فيلدObjinfo
    چي بذارم كه مقدارش در فيلدمتناظر از استراكچر قرار بگيره
    لطفا اگر ميتونيد اين يك خط رو به من كمك كنيد تا اصلاح كنم

  8. #8
    کاربر دائمی آواتار linux
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    پست
    2,313

    نقل قول: اشكال اين كد در كجاست

    نقل قول نوشته شده توسط kavehYn مشاهده تاپیک
    اين برنامه مربوط به پرونده هاي پرسنلي و مواردي از اين قبيله كه هميشه
    يك ركورد بايد از بانك خونده بشه.
    اطلاعاتي كه از بانك اطلاعاتي خونده ميشن در يك ديتا ست قرار داده ميشه و از
    يك لايه پايين برنامه برگشت داده ميشه .در لايه ديگري اطلاعات ديتا ست در يك استراكچر
    قرار داده ميشه و به فرم فراخواني كننده ارسال ميشه

    فرمايش شما دوستان صحيحه ولي لطفا توجه كنيد كه اين برنامه تعداد
    زيادي تيبل داره و اگر قرارباشه براي هرجدولي كه بوجود مياد مجبور باشم كه
    اون كدهاي
    Structure.item1=dataset.tables(0).rows(0).item1
    Structure.item2=dataset.tables(0).rows(0).item2
    Structure.item3=dataset.tables(0).rows(0).item3

    Structure.item100=dataset.tables(0).rows(0).item10 0

    رو بنويسم كار مشكل و وقتگيري ميشه در حاليكه اگر بتوانم يك تابع بنويسم كه
    يك ديتا ست و يك استراكچر رو بعنوان ورودي بگيره و ديتاست رو در فيلدهاي متناظر
    در استراكچر قرار بده خيلي سريعتر برنامه من نوشته ميشه
    همونطور كه گفتم كدي كه در بالا نوشتم كد نوشته شده فقط يك خطش اشكال داره
    f.SetValue(ObjInfo, Amount)
    مقدار در فيلدAmount موجوده ولي نميدونم كه بجاي فيلدObjinfo
    چي بذارم كه مقدارش در فيلدمتناظر از استراكچر قرار بگيره
    لطفا اگر ميتونيد اين يك خط رو به من كمك كنيد تا اصلاح كنم
    یک سری برنامه هستند که اسمشان code generator هست. مثل codesmith
    شما یک تمپلیت تعریف می کنید بر اساس آن تمپلیت کدشما تولید شده و می توانید همان را برنامه استفاده کنید.

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

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