PDA

View Full Version : جستجوی لحظه ای در میان دیتاگرد



salehvasaleh
سه شنبه 16 شهریور 1389, 18:01 عصر
فرض کنید داده های درون یک دیتاگرید ویو در 5 ستون نمایش داده میشه چطوری میشه کارید کرد که جهت سرچ فرضا 5 تا تکست باکس داشت و چنانچه درون هر یک اطلاعات مربوط به هر یک از ستونها نوشته شد همزمان با نوشتن کاربر فقط اطلاعات همون سطر نمایش داده بشه مثل دفترچه تلفن موبایل که وقتی حرفی رو وارد می کنیم فقط اسامی های اون حرف می آد. ممنون می شم کمکم کنید.

pedramfj
سه شنبه 16 شهریور 1389, 19:15 عصر
سلام
اگر درست فهمیده باشم ,می خواهید بر اساس فیلد ها جستجو کنید(مثلا بر اساس نام)
در خاصیت TextChanged کد زیر را وارد کنید.که همزمان جستجو انجام می دهد .

]CODE]
if (textBox1.Text != "")
{

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=elmotose;Integrated Security=True");
con.Open();
SqlDataReader dr;
SqlCommand com = new SqlCommand("SELECT name,age FROM information where name='" +textBox1.Text + "'", con);

dr = com.ExecuteReader();

while (dr.Read())
{
dataGridView1.Rows.Add(new object[] { dr.getstring(0).trim(), dr.GetInt64(1), });
};

}



else
{
// MessageBox.Show("");

}
[/code[

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

sinashahab
سه شنبه 16 شهریور 1389, 20:31 عصر
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=elmotose;Integrated Security=True");
con.Open();
SqlDataReader dr;
SqlCommand com = new SqlCommand("SELECT name,age FROM information where name='" +textBox1.Text + "'", con);


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

این طوری که هر بار به دیتابیس کاننکت کنه خیلی بد میشه !!

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

ایمان مدائنی
سه شنبه 16 شهریور 1389, 20:36 عصر
دوست عزیز داتاگرید ویو خاصیتی داره که میتونی دستورات اس کیو ال رو مستقیما روش اعمال کنی
از دستور like% استفاده کن !
سرعتش فوق العاده بالاست
اگه نتونستی بگو نمونه بزارم

در کلاس اصلی کد زیر رو تعریف کن و از dataView برای پر کردن داتاگرید ویو استفاده کن



DataView Dv;





Dv.RowFilter="id=3";

فقط یادت باشه که فقط باید شرط رو بنویسی

vandermond
سه شنبه 16 شهریور 1389, 21:49 عصر
دوست عزيز
پاسخ شما اينجا (http://programming.ramiz.ir/index.php?option=com_kunena&Itemid=64&func=view&catid=9&id=192)داده شد:
http://programming.ramiz.ir/index.php?option=com_kunena&Itemid=64&func=view&catid=9&id=192

salehvasaleh
سه شنبه 16 شهریور 1389, 23:38 عصر
دوست عزیز داتاگرید ویو خاصیتی داره که میتونی دستورات اس کیو ال رو مستقیما روش اعمال کنی
از دستور like% استفاده کن !
سرعتش فوق العاده بالاست
اگه نتونستی بگو نمونه بزارم

در کلاس اصلی کد زیر رو تعریف کن و از dataView برای پر کردن داتاگرید ویو استفاده کن



DataView Dv;





Dv.RowFilter="id=3";

فقط یادت باشه که فقط باید شرط رو بنویسی

اگه می شه ممنون می شم یک نمونه بگذراید.سپاس

ایمان مدائنی
چهارشنبه 17 شهریور 1389, 07:21 صبح
عزيز من برنامه ات رو برات درست كردم و فرستادم !

همون نامه ها كه يك تكس باكس برات گذاشتم و با وارد كردن نوشته داتاگريد ويو فيلتر ميشد !