PDA

View Full Version : datataGridview سفارشی



saber4166
سه شنبه 15 مرداد 1387, 20:56 عصر
چه طور میتونم به یوزر کنترل سفارشی ترکیبی از dataGridview و texbox ها بسازم چون میخواهم چستجوم براساس تمام فیلد ها باشه

یه جورایی راحت تر بگم اینه که رکورد اول datagridview خالی باشد
و من نوشته هایم برای جستجو را در ان قسمت بنویسم

رضا جاسبی
سه شنبه 15 مرداد 1387, 21:44 عصر
من پیشنهاد می کنم همون حالت ترکیب رو داشته باشی. یعنی یه سری TextBox که با TextChange هرکدوم شرط SQL رو عوض کنی و بعد دوباره گریدت رو Update کنی. فقط دقت کن که اگر روی TextChange کد بنویسی باید در شرطت Like بگذاری وگرنه تا زمانی که مقدار اصلی رو کامل وارد نکردی چیزی نمیاره.
اگر بخواهی در سطر اول چیزی بنویسی باید خودت کنترل کنی و سطر اول رو همیشه نگه داری و بعد از Update دوباره سطر اول رو Add کنی که کار پردردسریه.

saber4166
سه شنبه 15 مرداد 1387, 22:42 عصر
دوست عزیز میتونی یه مثال کاربردی قرار بدی تا دقیقا ببینم که باید چه کرد
اخه از گفته های شما چیز زیادی که بتونم برنامه اش رو بنویسم در یافت نکردم راحت تر متوجه نشدم
که چه باید کرد

رضا جاسبی
سه شنبه 15 مرداد 1387, 23:01 عصر
یک تکه کد می ذارم:


private void LoadData()
{
try
{
String SqlCommandText;
int Added = 0;
SqlCommandText = "Select * from vBimeh";
if (txtPerson.Text != "")
{
SqlCommandText += ((Added == 1)?" And":" Where");
SqlCommandText += " Person like N'%" + txtPerson.Text + "%'";
Added = 1;
}
if (txtID.Text != "")
{
SqlCommandText += ((Added == 1)?" And":" Where");
SqlCommandText += " ID like N'%" + txtID.Text + "%'";
Added = 1;
}
...



این تیکه تقزیبا می تونه برای ساختن Select Command کمکت کنه. نکته ای که توجه داری این باشه که من همانطور که در یک تاپیک دیگه گفتم خودم Grid رو پر می کنم و به DB مستقیم Bind اش نکردم.
دقت داشته باش که از Like استفاده کردم و اون هم '%Value%' که باعث میشه هر مقداری که این الگو رو داشته باشه بیاد. (فکر می کنم این گزینه Like بتونه در جواب اون یکی سوالت هم کمک کنه)

و در KeyUp فیلد txtPerson هم LoadData رو Call میکنم.


private void txtPerson_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
LoadData();
}

می تونی توی TextChange همین کار رو بکنی ولی من می خواستم وقتی روی یک سطر از گرید کلیک می کنم اطلاعات اون سطر رو برای در TextBox ها نشون بده و این باعث میشد که LoadData دوباره فراخوانی بشه و فقط یک سطر نشون بده ولی در KeyUp فقط وقتیه که کلیدی زده بشه. توضیحش کمی مفصله و ربطی به سوالت نداره.

saber4166
چهارشنبه 16 مرداد 1387, 01:43 صبح
دوستان بزرگوار من یه همچین datagridview ای می خوام داشته باشم اگر در تصویر دقت
کنید در ردیف اول datagrid vew محلی برای نوشتن وجود دارد

saber4166
چهارشنبه 16 مرداد 1387, 11:37 صبح
دوستان یکی کمکم کنه نیاز شدید

m0rteza
چهارشنبه 16 مرداد 1387, 13:40 عصر
کار خیلی راحتیه!!!!!!!!!!
کوری فرم اصلی رو به فرم جستو جو پاس بده (میتونی یه کوری دیگه پاس بدی که معمولن همینطور میشه) حالا datasetرو در فرم جستجو پر کنید .
یه حلقه بندازید و نام فیلد ها رو از دیتاست در بیار و در یک Combobox پر کنید و بکی دیگه هم از عملگر ها .
حالا چی داری؟ یک کوری اصلی که پاس داده شد و لیستی از فیلد ها و لیستی از عملگر ها
.به نظرت نمیشه با این 3 چیز یک کوری دیگه که کاربر میخواد ساخت؟ 60% میشه
فقط میمونه فارسی کردن هدر هر فیلد که میتونی با کلک رشتی و یکم فکر حلش کنی . البته میشه از توضیحات دیتابیس استفاده کرد. کارجالبی هست ولی واسه اتوماسیون به این چیزا گیر نده . بیشتر تحلیل رو قوی کن چون با تحلیل غلط شکست میخوره . به نظرم فعلن که پروژه داری جست و جو رو محدود کن و به تحلیل فکر کن. در یه پستی ازم تشکر کردی چون لیقت تشکر نداش پستم . با یه تشکر دیگه جبران میکنم