PDA

View Full Version : مشکل در datagridview و textbox



IsaacZhr
چهارشنبه 14 تیر 1391, 00:12 صبح
سلام خسته نباشید
من در برنامه نویسی تازه کارم لطفا جواباتون کامل باشه مرسی.

در حال حاضر دو مشکل دارم
1 میخواستم بر روی هر ردیفی از datagrideview کلیک کنم اطلاعات هر سلول اون ردیف در یک textbox جدا بیفته که بتونم اون رو ویرایش یا حذف کنم و این دستور رو کجا بنویسم(کدوم قسمت)

2.میخواستم یک سرجی بنویسم که بر روی دو فیلد تاثیر بزاره به طوری که اگه در textbox اول حرف م و در textbox دوم حرف ش را وارد کنم datagridview ردیفهایی رو نشون بده که ستمن اولشون با م و ستون دومشون با ش شروع بشه رو نشونمون بده. مثل محمد شادمهر و محسن شریفات . من تو دستورش گیج شدم. در ضمن این دستور را کجا بنویسم

مرسی

samadblaj
چهارشنبه 14 تیر 1391, 00:48 صبح
سلام برای جواب پاسخ سوال دومت یه سر به این پست (http://barnamenevis.org/showthread.php?346672-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%AF%DB%8C%D8%AA%D8%A7%DA%AF%D8%B1%DB%8C%D8%AF%D 9%88%DB%8C%D9%88-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%AE%D8%A7%D9%86%D9%87-%D9%87%D8%A7%DB%8C-%D8%A2%D9%86&p=1537317&viewfull=1#post1537317)من بزن بدردت میخوره.

piroozman
چهارشنبه 14 تیر 1391, 00:49 صبح
1 میخواستم بر روی هر ردیفی از datagrideview کلیک کنم اطلاعات هر سلول اون ردیف در یک textbox جدا بیفته که بتونم اون رو ویرایش یا حذف کنم و این دستور رو کجا بنویسم(کدوم قسمت)

در خصوص سئوال اولتون شما می بایست سورس دیتاگریدویو و تکس باکس رو یکسان کنید. بهتره از BindingSource استفاده کنید. برای آشنایی بیشتر می بایست مطالعه کاملی روی ADO.NET داشته باشید.


2.میخواستم یک سرجی بنویسم که بر روی دو فیلد تاثیر بزاره به طوری که اگه در textbox اول حرف م و در textbox دوم حرف ش را وارد کنم datagridview ردیفهایی رو نشون بده که ستمن اولشون با م و ستون دومشون با ش شروع بشه رو نشونمون بده. مثل محمد شادمهر و محسن شریفات . من تو دستورش گیج شدم. در ضمن این دستور را کجا بنویسم

اگر درست متوجه شده باشم می بایست از کد زیر استفاده کنید. بهتره اون رو به صورت یک store procdure ایجاد کرده و در برنامه خود استفاده کنید. مجددا نیاز دارید که ADO.NET مطالعه کنید. البته راههای جدیدتری مانند استفاده از Entity Framework هم وجود داره
select * from table1 where cl1 like N'م%'
and cl2 like N'ش%'
موفق باشید

Mahmoud.Afrad
چهارشنبه 14 تیر 1391, 06:12 صبح
برای سوال اول میتونید از رویداد rowenter دیتاگریدویو استفاده کنید
private void dataGridView1_RowEnter(object sender, DataGridViewCellEventArgs e)
{
textBox1.Text = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["نام و یا آی دی ستون"].Value);
}

برای سوال دوم اگر با دیتاتیبل و یا دیتاست گریدویو رو پر کرده باشید دیگه نیازی به کوئری زدن روی دیتابیس نیست(برای جلوگیری از پردازش اضافی و هدر رفتن زمان چون به ازای هر حرفی که کاربر تایپ میکنه یک کوئری رو دیتابیس زده میشه که در صورتی که سطرها زیاد باشند پردازش سنگینی میشه)
میتونید در رویداد textchanged تکست باکس ها از rowfilter استفاده کنید
private void textBox1_TextChanged(object sender, EventArgs e)
{
dt.DefaultView.RowFilter = "Name like '" + textBox1.Text + "%' AND Lastname like '" + textBox2.Text + "%'";
dataGridView1.DataSource = dt.DefaultView;
}منظور از dt دیتاتیبلی هست که به گرید بایند شده. باید در رویداد هر دو تکست باکس فیلتر رو انجام بدید.