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

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




صفحه 5 از 7 اولاول 1234567 آخرآخر
نمايش نتايج 41 به 50 از 61

نام تاپيک: اشاره کمبو باکس و دیتاگرید به رکورد تازه درج شده

  1. #41
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض جوابی بر DataView.Find

    سلام
    من با خاصیت Find از DataView به مقدار سطر دست یافتم. خاصیت FindRows از DataView یک کلیکسیون بر می گردونه . وقتی راه ساده تر Find هست دیگه راه سخت تر رو نرفتم. به جواب هم رسیدم
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    Last edited by قله بلند; 02-01-2009 at 16:22.

  2. #42
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    سلام
    چقدر مرتب و دقیق. واقعاً مهندسی وار کار می کنید.
    جناب -H2-
    شما از تابع DBSaveAll() استفاده نکردید. یعنی اون رو جایی فراخوانی نکردید.کجا این تابع رو بگذارم؟

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

    پيش فرض

    سلام
    شما از تابع DBSaveAll() استفاده نکردید. یعنی اون رو جایی فراخوانی نکردید.کجا این تابع رو بگذارم؟
    این کتد استفاده نشد.
    اگر بخواهید کاربر بتوانید گراید را مستقیماً ویرایش کند و چیزی به خود گراید اضافه یا کم کند یا سطری را تغییر دهید و...
    در نهایت میتوان کل تغییرات را با تابع مذکور به صورت یکجا ذخیره کنید.
    (یعنی در همان تئوری دکمه Save دار مفید خواهد بود و باید در رویداد ان دکمه Save این متد فراخانی شود.)


    وقتی راه ساده تر Find هست دیگه راه سخت تر رو نرفتم. به جواب هم رسیدم
    شاید کد شما به نظر شما ساده تر باشد و performance بسیار پایی دارد و کندی سرعت و بازدهی را در تعداد سطرهای بالا احساس خواهید کرد.

    ضمناً در برنامه واقعی و در پروزه واقعی دستوررات پیشبینی خطا و try را هم فراموش نکنید.
    بهرحال خوشحالم که مشکلتان حل شد و موفق باشید.

  4. #44
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض عملی که DataView.FindRows انجام می دهد

    با سلام
    قطعه کد زیر تعداد سطرهای اضافه شده در dataView رو نشون می ده. مثلاً اگر در اثر عمل درج یک سطر اضافه شده باشه عدد یک رو بر می گردونه و اگر مثلاً دو تا سطر درج شده عدد دو رو نشون می ده.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  5. #45
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض یک سوال و یک اشکال

    با عرض سلام و تشکر
    من در آدرس زیر ، دو عکس و فایل قبلی را با اضافه کردن دو combobox در یک پوشه قرار دادم.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اشکال:

    در عکس اول من می خواهم رکوردی را اضافه کنم. در عکس دوم Add انجام شده است. نشانگر به سطر آخر اشاره می کند. مگر نه اینکه سطر تازه درج شده باید در مکان دوم از DataGrid به کاربر نشان داده شود؟


    سوال جدید:

    همانطور که در فرم می بینید، دو تا کمبو باکس به جمع اشیاء قبلی اضافه شده است. عناصر این دو کمبو باکس دو فیلد نشان داده شده در dataGrid هستند. در combobox1 مقادیر ستون EmployeeId و combobox2 مقادیر ستون TerritoryID ریخته شده است.
    من می خواهم عناصر هر دو کمبو باکس به صورت صعودی مرتب شوند و هر گاه کاربر مقداری را از هر کمبویی که مدنظرش بود انتخاب کرد ، سطر متناظر در dataGrid انتخاب شود.
    از خاصیت DataView.sort استفاده می کنم ولی در آن واحد فقط یکی از کمبو ها sort می شود. از طرفی وقتی کمبوی مخصوص TerritoryID را sort می کنم ، با انتخاب عنصری از این کمبو دیگر سطر متناظر روی dataGrid انتخاب نمی شود.



    شاید سوال کنید که چرا می خواهم این کار را انجام دهم؟

    شما فرض کنید که به جای EmployeeId و TerritoryID ، نام و نام خانوادگی افراد درون این کمبو ها بود. برای کاربر همیشه ترتیب عناصر دارای اهمیت است.
    شاید کاربر اسم کسی را در یاد داشته باشد ، با انتخاب نامی از کمبو، سطر متناظر از DataGrid مربوطه انتخاب شده و دیگر مشخصات این فرد ظاهر می شود.
    وقتی مقادیر کمبو ها مرتب باشند انتخاب کاربر سریعتر خواهد بود و تمایل کاربر به کار با برنامه بیشتر خواهد بود.

  6. #46
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام
    همین الان یک راه جالب را دیدم و آن اینکه داده های درون کمبو را به ListArray منتقل کنیم و با خاصیت Sort() آن ، داده ها را مرتب کنیم.
    هنوز روش کار نکردم ولی چگونه داده های درون کمبو باکس را به ListArray منتقل کنم و چگونه دوباره ListArray را به کمبو باکس تبدیل کنم؟
    عجب مطلب جالبی است

  7. #47
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    جواب:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در صورتی که این دستور کار نمی کنه و تولید خطا می کنه.

    با روش زیر می شه arraylist رو پر کرد :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و از دستور زیر هم به دنبال قطعه کد بالا ایراد می گیره:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    منابعی که ازشون استفاده کردم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  8. #48
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض چند راه دیگر برای پر کردن ArrayList -من گیج شدم

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با این هم می شه، ArrayList رو پر کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی وقتی داده ای از کمبو باکس انتخاب می شه، هیچ عکس العملی روی datagrid اتفاق نمی افته.
    با این هم می شه، ArrayList رو پر کرد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی باز هم همون نتیجه همیشگی!

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

    پيش فرض

    سلام
    متاسفانه وقت کم دارد، شرمنده!
    به سوال خصوصی یکی از دوستان ساعت 4:10 صبح جواب دادم. بحرحال متاسفم زودتر نوانستم جواب دهم.

    =====

    قطعه کد زیر تعداد سطرهای اضافه شده در dataView رو نشون می ده. مثلاً اگر در اثر عمل درج یک سطر اضافه شده باشه عدد یک رو بر می گردونه و اگر مثلاً دو تا سطر درج شده عدد دو رو نشون می ده.
    کارکرد این دستور شرایط خاصی دارد ضمن اینکه اگر تعداد آیتمهای DataTable زیاد باشد، با کاهش بازدهی مواجه خواهید شد و فائیده اش را برایتان درک هم نمیکنم!

    در عکس اول من می خواهم رکوردی را اضافه کنم. در عکس دوم Add انجام شده است. نشانگر به سطر آخر اشاره می کند. مگر نه اینکه سطر تازه درج شده باید در مکان دوم از DataGrid به کاربر نشان داده شود؟
    نخیر!
    تا وقتی که گراید یا DataView صراحتاً به sort خاصی تنظیم شوند، این عمل انجام نمیشود.


    من می خواهم عناصر هر دو کمبو باکس به صورت صعودی مرتب شوند..
    ..از خاصیت DataView.sort استفاده می کنم ولی در آن واحد فقط یکی از کمبو ها sort می شود...
    کنترلر combobox مجهز به خصوصیت Sorted است که باید true اش کنید. یا از دو DataView مجزا استفاده کنید.
    ولی یک راست نمیتوانید از مقادیر موجود در DataTable استفاده کنید...
    چون مقادیر دو فیلد شما با هم منحصر به فرد هستند (غیر تکراری) و هر کدام جداگانه میتواند بارها تکرار شود، نتیجتاً در کامبوها حالتی پیش می آید که از یک آیتم چندین بارخواهید دید.
    برای رفع این مشکل یا باید از LINQ استفاده کنید (که در نسخه 2008 در دسترس است) یا اینکه خودتان دیتاهای غیر تکراری را در collection یا array جداگانه ای برای تغذیه کامبوها ذخیره کنید.

    ... هر گاه کاربر مقداری را از هر کمبویی که مدنظرش بود انتخاب کرد ، سطر متناظر در dataGrid انتخاب شود...
    از تابع DataView.Find استفاده کنید و جفت مقادیر کامبو را بدهید تا ایندکس سطر مورد نظر پیدا شود و گراید را به ایندکس مورد نظر ست کنید(اگر ایندکس منفی نباشد)

    ... با انتخاب عنصری از این کمبو دیگر سطر متناظر روی dataGrid انتخاب نمی شود...
    ...ولی وقتی داده ای از کمبو باکس انتخاب می شه، هیچ عکس العملی روی datagrid اتفاق نمی افته...
    گمان نمیکنم انتظار داشته باشید برای عملی کدنویسی نکنید و خودش خود به خود انجام شود!!! اگر اینطور باشد که دیگر برنامه نویس نمیخواهد!
    (البته میشد این کار را به نوعی خودکار هم انجام داد ولی باید کلیدتان یکتا میبود یا با یک کنترلر و سطح اضافه در قابل یک کنترلر واحد یکتایش میکردید!

    همین الان یک راه جالب را دیدم و آن اینکه داده های درون کمبو را به ListArray منتقل کنیم و با خاصیت Sort() آن ، داده ها را مرتب کنیم.
    هنوز روش کار نکردم ولی چگونه داده های درون کمبو باکس را به ListArray منتقل کنم و چگونه دوباره ListArray را به کمبو باکس تبدیل کنم؟
    با توجه به وجود دیتا در DataTable کپی گرفتن بیمورد از این دیتا منطقی نیست، ولی نیاز به این کار احتمالاً خواهید داشت، نه به علت مشکل sort که با یک true و false خصوصیت Sorted حل میشود بلکه به دلیل همان دیتاهای تکراری که یک آیتم میتواند چندین بار در کامبو تکرار شود.


    در صورتی که این دستور کار نمی کنه و تولید خطا می کنه.
    ...با روش زیر می شه arraylist رو پر کرد...
    ...با این هم می شه، ArrayList رو پر کرد:...
    همانطور که گفتم sort اصلاً مشکلی ندارد و ایجاد نمیکند، مشکل شما که انگار خودتان نمیدانید، دیتاهای تکراری است و شما باید کدی بنویسید که این دیتاهای تکراری را حذف کند


    و از دستور زیر هم به دنبال قطعه کد بالا ایراد می گیره
    ..ولی باز هم همون نتیجه همیشگی...
    ValueMember در صورتی کار میکند که دیتای منبع شما خصیصه ای با این نام داشته باشد یا خصیصه defualt ای با ورودی string داشته باشد.
    شما یا باید آرایه ای از DataRow ها تشکلی دهید و از ValueMember استفاده کنید،
    یا آرایه ای از String یا Int تشکیل دهید و از ValueMember استفاده نکنید.

    =====

    موفق باشید.

  10. #50
    آخر فروم باز قله بلند's Avatar
    تاريخ عضويت
    Mar 2008
    پست ها
    1,471

    پيش فرض

    با سلام. من از سه تا DataView استفاده کردم تا سه فیلد از جدول Employees را بتونم اداره کنم. در این جدول EmployeeID کلید اصلی است و از نوع Identity است.lastname و FirstName نیز فیلدهای دوم و سوم این جدول را نشان می دهند.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من از رویداد SelectedIndexChanged برای دو کمبو باکس حاوی LastName و Firstname استفاده کردم. در اینجا textBox3 به فیلد EmploeeyID اشاره می کند.(نمی دانم شاید اصلا وجودش لازم نباشد)
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در قطعه کد زیر ، وقتی می خواهم سه عنصر EmploeeyID ، FirstName و LastName را پیدا کنم، نمی توانم texbox3.text ار نیز در بین texbox2.text و texbox1.text قرار دهم زیرا در جدول EmploeeyID از نوع Identity است ولی خوبی ان این بود که در جدول EmployeeTerritories فقط از نوع int بود.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    حتی اگر از یک dataview نیز استفاده کنم و خاصیت sorted را برای کمبو باکس true کنم ، باز هم همان مشکل باقی است. وقتی از کمبو ها انتخاب می کنم ، سطر متناظرش در datagrid1 انتخاب نمی شود.

Thread Information

Users Browsing this Thread

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

User Tag List

برچسب های این موضوع

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

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