PDA

View Full Version : سوال: تشکیل data table به صورت پویا



JustAcMilan
شنبه 21 اردیبهشت 1392, 22:35 عصر
با سلام
من ميخواستم يه data table با توجه به تصوير زير تشکيل بدم
104051
که باتوجه به checkboxهایی که انتخاب شدن و شرطهايي که از comboboxها انتخاب ميشن و مقداري
که توي textbox وارد ميشه پر کنم توجه داشته باشيد که در يک لحظه ممکنه يک چک باکس يا چندتا انتخاب بشن يا اصلا انتخاب نشن که ميشه select *
از اساتيد خواهش ميکنم لطفا راهنمايي کنن

mousa1992
شنبه 21 اردیبهشت 1392, 23:08 عصر
سلام دوست عزیز
شما میتونید متدی رو بنویسید که تمام ایتم های فرمتون رو بررسی کنه و بر اساس اونا جدولی رو ایجاد کنه و با هر تغییر در checked چک باکس ها و یا تغییر متن تکس باکستون و یا کامبو اون متد رو فراخوانی کنید و مثل نمونه کد زیر ستون ها رو ایجاد میکنید

DataTable tabel = new DataTable();

if (checkBox1.Checked)
{
if (comboBox1.SelectedIndex == 1)
tabel.Columns.Add("columnName");
else
tabel.Columns.Add("ColumnName");
}
if (checkBox2.Checked)
{
// ...
}

موفق باشید

JustAcMilan
یک شنبه 22 اردیبهشت 1392, 01:34 صبح
ممنون از جوابتون ولی من میخوام با توجه به انتخابهای کاربر دستور select بنویسم و از بانک استخراج کنم و توی data table بریزم
شاید شما منظور منو درست متوجه نشدید
.

mousa1992
یک شنبه 22 اردیبهشت 1392, 02:27 صبح
سلام
بازم فرقی نمیکنه شما با استفاده از چندتا if شبیه بالا میتونی کوئری خودتو بسازی ! مثلا ی لیست ی ارایه و یا هرچیزی که خودت مناسب میدونی در نظر بگیر که نام فیلدهایی که باید برگردونه رو ذخیره میکنه و بعد از تعیین فیلدهای برگشتی کوئری رو بر اساس همونا میسازی - کوئری شما فقط یک قسمت متغیر فیلدهارو داره
اگه موفق نشدی بسازیش اطلاع بده

JustAcMilan
یک شنبه 22 اردیبهشت 1392, 14:17 عصر
سلام
بازم فرقی نمیکنه شما با استفاده از چندتا if شبیه بالا میتونی کوئری خودتو بسازی ! مثلا ی لیست ی ارایه و یا هرچیزی که خودت مناسب میدونی در نظر بگیر که نام فیلدهایی که باید برگردونه رو ذخیره میکنه و بعد از تعیین فیلدهای برگشتی کوئری رو بر اساس همونا میسازی - کوئری شما فقط یک قسمت متغیر فیلدهارو داره
اگه موفق نشدی بسازیش اطلاع بده
می دونی مشکل من چیه، اینه که به ازای هر چکباکسی که تیک می خوره یه شرط جدید به کوئری اضافه میشه (با توجه به شرطی که از کمبوباکس انتخاب میشه و مقداری که توی تکست باکس وارد میشه) یعنی ممکنه کوئری هیچ شرطی نداشته باشه و select * باشه یا یک شرط یا دو شرط و ...

اگه نمونه کد بزارین ممنون میشم

mousa1992
یک شنبه 22 اردیبهشت 1392, 15:21 عصر
سلام دوست عزیز ی نمونه برنامه کوئری ساز براتون نوشتم امیدوارم مفید واقع بشه

توی این نرم افزار ی چیزی شبیه همونی که میخواید درست کردم با قرار دادن چند چک باکس به عنوان فیلدها و کامبو ها و تکست باکس ها برای تعیین شرط - ازش نمونه بگیرید و چیزی که میخواین رو درست کنید

موفق باشی

JustAcMilan
یک شنبه 22 اردیبهشت 1392, 21:41 عصر
سلام دوست عزیز ی نمونه برنامه کوئری ساز براتون نوشتم امیدوارم مفید واقع بشه

توی این نرم افزار ی چیزی شبیه همونی که میخواید درست کردم با قرار دادن چند چک باکس به عنوان فیلدها و کامبو ها و تکست باکس ها برای تعیین شرط - ازش نمونه بگیرید و چیزی که میخواین رو درست کنید

موفق باشی


ممنون از سورسی که گذاشتین، اما گفتم که مشکل من با شرطهاست نه فیلدها. شما توی برنامتون یک کمبوباکس استفاده کردین یعنی کوئری حد اکثر یک شرط داره اگه میشه از چند کمبو باکس استفاده کنید تا برنامه چندشرطی بشه و مشکل منم حل بشه
واقا ممنونم ازتون

linux
یک شنبه 22 اردیبهشت 1392, 23:10 عصر
ممنون از سورسی که گذاشتین، اما گفتم که مشکل من با شرطهاست نه فیلدها. شما توی برنامتون یک کمبوباکس استفاده کردین یعنی کوئری حد اکثر یک شرط داره اگه میشه از چند کمبو باکس استفاده کنید تا برنامه چندشرطی بشه و مشکل منم حل بشه
واقا ممنونم ازتون
راه بهتر هم هست در مورد الگوهای طراحی مطالعه کنید و الگو دکوریت را ببینید به نظرم برای این کار شما جواب می‌دهد.
شما تو این فرمتون یک + قرار بدهید با کلید کردن بر روی + یک خط اضافه شود که کاربر شرط را در آن تعین کند.

aslan
یک شنبه 22 اردیبهشت 1392, 23:14 عصر
سلام
میتونید از نمونه زیر ایده بگیرید :
104109

JustAcMilan
دوشنبه 23 اردیبهشت 1392, 22:18 عصر
با سلام
من باتوجه به راهنمیایی دوستان برنامه رو نوشتم (ضمیمش کردم)
http://s4.picofile.com/file/7762472361/1.jpg
فقط دوتا مسئله است
اول اینکه برای انواع مختلف داده(string,int,...)، شرطهای یکسان توی کمبوباکس هست، من می خوام با توجه به نوع فیلد، آیتمهای مربوطه نمایش داده شود (آیتمهای غیر مربوط یا پنهان بشن یا غیر فعال)
http://s4.picofile.com/file/7762479993/2.jpg
دوم اینکه برای شرط between هیچ ایده ای ندارم، نمیدوم برای گرفتن مقدار دوم یه textbox ظاهر بشه یا از دیالوگ بگیرم یا ...


لطفا اگه میشه این موارد رو اصلاح کنید
ممنون میشم

http://s4.picofile.com/file/7762472575/myDynamicQuery.rar.html

mousa1992
سه شنبه 24 اردیبهشت 1392, 00:22 صبح
سلام دوست عزیز


اول اینکه برای انواع مختلف داده(string,int,...)، شرطهای یکسان توی کمبوباکس هست، من می خوام با توجه به نوع فیلد، آیتمهای مربوطه نمایش داده شود (آیتمهای غیر مربوط یا پنهان بشن یا غیر فعال)

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



دوم اینکه برای شرط between هیچ ایده ای ندارم، نمیدوم برای گرفتن مقدار دوم یه textbox ظاهر بشه یا از دیالوگ بگیرم یا ...


برای between من دوراه رو پیشنهاد میکنم حالا بازم بستگی داره به خودتون
1 - با انتخاب این ایتم از کامبو دوتا تکست باکس ظاهر بشه و اطلاعاتو بگیره
2 - توی همون یدونه تکست باکس دوتارو بگیری و توی توضیحاتی بنویسی که مثلا با علامت , مقادیر رو از هم جدا کنید و کنترل کنی تکست باکسی که مقادیر ورودی به همین صورتی که میخوای باشه در غیر این صورت خطا بده


خوشحالم تونستین چیزی که میخواین رو درست کنین

JustAcMilan
چهارشنبه 25 اردیبهشت 1392, 23:32 عصر
با سلام
با کمک دوستان نوشتمش، اون دوتا مسئلشم حل کردم گفتم بزارم شاید دوستان استفاده کنن

104248104249104250

http://s4.picofile.com/file/7765034836/MyDynamicQuery.rar.html