جستجوی پویا در datagridView
با سلام به همگی
حتما همه شما برنامه های موبایل را دیده اید که در میان اطلاعات تماسها چگونه میتوانید سرچ کنید یعنی با تایپ حروف فرد مورد نظر به تدریخ لیست نمایش داده شده آپدیت شده و محدودتر میشود . میخواستم ببینم میتوان چنین کاری را در مورد اطلاعات موجود در یک datagridview انجام داد. کسی تا به حال چنین موردی را دیده است ؟
نقل قول: جستجوی پویا در datagridView
سلام دوست عزيز
شما به راحتي مي تونيد اينكارو انجام بديد!!:چشمک:
شما بايد ابتدا يه ديتا ريدر (dataReader) ايجاد كنيد سپس با like يه كوئري بنويسيد و اطلاعات رو در ديتا ريدر قرار بديد و با استفاده از يه تابع هر بار ديتا ريدر را در datagrideviwe نمايش بديد!!
و تمام اين كد رو در بخش Keypress تكست باكستون مي نويسيد!!!
اگر متوجه نشديد بگيد كه با مثال توضيح بدم!!:چشمک:
نقل قول: جستجوی پویا در datagridView
با سلام و خسته نباشید . دوست عزیز یک سئوال مگر به کمک sqlDatareader در یک لحظه میتوان بیش از یک رکورد را خواند ؟ اگر میشود یک مثال بزنید . نکند منظور شما ایجاد یک dataset یا dataview بوده است؟
نقل قول: جستجوی پویا در datagridView
نقل قول:
نوشته شده توسط
rnm123
با سلام و خسته نباشید . دوست عزیز یک سئوال مگر به کمک sqlDatareader در یک لحظه میتوان بیش از یک رکورد را خواند ؟ اگر میشود یک مثال بزنید . نکند منظور شما ایجاد یک dataset یا dataview بوده است؟
بله دوست عزیز میشه به کد زیر نگاه کنید
SqlCommand com = newSqlCommand("select count(*) from tb1 ", con);
SqlDataReader dr;
con.Open();
dr = com.ExecuteReader();
while (dr.Read())
{
dataGridView2.Rows.Add(dr["fild1"].ToString(),dr["fild2"].ToString());
}
con.close();
نقل قول: جستجوی پویا در datagridView
نقل قول:
نوشته شده توسط
rnm123
با سلام و خسته نباشید . دوست عزیز یک سئوال مگر به کمک sqlDatareader در یک لحظه میتوان بیش از یک رکورد را خواند ؟ اگر میشود یک مثال بزنید . نکند منظور شما ایجاد یک dataset یا dataview بوده است؟
دوست عزيز در واقع در هر لحظه يك ركورد را بيشتر نمي توان خواند، نوع آبجكتش فرقي نمي كنه هر آبجكتي كه باشه همينطوره!!
اما همونطور كه دوستمون mohsen_zelzela00 در كدشون نوشتن مي بينيد كه مي تونيد يه كوئري به هر تعداد ركورد را در ديتاريدر قرار بديد و سپس با استفاده از يه حلقه تمام ركوردها رو بخوانيد و در Datagrideview نمايش بديد!!
**متد Read در ديتاريدر هربار تنها يه ركورد رو مي خونه!!
نقل قول:
شما بايد ابتدا يه ديتا ريدر (dataReader) ايجاد كنيد سپس با like يه كوئري بنويسيد
برايه اين كار شما بايد در كد دوستمون قسمت زير رو با توجه به نيازتون تغيير بديد!!
SqlCommand com = newSqlCommand("select count(*) from tb1 ", con);
نقل قول: جستجوی پویا در datagridView
با تشکر از همه دوستان راه حل شما را امتحان کردم و جواب هم داد ولی یک مشکلی است . باری تست سرعت 100 رکورد در پاگاه داده ایجاد کردم . با این روش عملا با سرعت تایپ معمولی کابر توقف لحظه ای برنامه کاملا مشهود میشود. حال اگر این برنامه روی یک کامپیوتر ضعیفتر نصب شود که واویلا میشود. برای افزایش سرعت به نظرتان چه کنیم . آیا میشود در DATAvIEW عملیات LIKE را پیاده سازی کرد . یعنی به جای اینکه با تایپ هر حرف توسط کاربر بجای جستجوی دوباره پایگاه داده فقط DATAVIEW پرشده سرچ شود؟
نقل قول: جستجوی پویا در datagridView
دوست عزيز قاعدتا نبايد خيلي سرعت سيستم گرفته بشه ولي اگه اون كارم بخواهيد كنيد اولا كه خيلي كار بيشتري مي بره و ضمنا تضميني هم نيست كه سريع تر از اين روش انجام بشه!!
به نظر من شما به جاي حلقه اي كه در كد دوستمون بود از حلقه زير استفاده كنيد شايد بهتر بشه!!:لبخندساده:
object[] record = new object[4];
while (dr.Read())
{
dr.GetValues(record);
dataGridView1.Rows.Add(record);
}
موفق باشيد:چشمک:
نقل قول: جستجوی پویا در datagridView
فکر نمی کنید برای دسترسی به دیسک باید بهای زیادی رو پرداخت کرد.چرا از DataGridViewRowCollection استفاده نمی کنید.....
نقل قول: جستجوی پویا در datagridView
نقل قول:
نوشته شده توسط
rnm123
با تشکر از همه دوستان راه حل شما را امتحان کردم و جواب هم داد ولی یک مشکلی است . باری تست سرعت 100 رکورد در پاگاه داده ایجاد کردم . با این روش عملا با سرعت تایپ معمولی کابر توقف لحظه ای برنامه کاملا مشهود میشود. حال اگر این برنامه روی یک کامپیوتر ضعیفتر نصب شود که واویلا میشود. برای افزایش سرعت به نظرتان چه کنیم . آیا میشود در DATAvIEW عملیات LIKE را پیاده سازی کرد . یعنی به جای اینکه با تایپ هر حرف توسط کاربر بجای جستجوی دوباره پایگاه داده فقط DATAVIEW پرشده سرچ شود؟
سلام
این کد یک بار دیتابیس را جستجو می کند و با نتایج جستجو کار میکنه فکر میکنم منظورتان همین بود
da = new SqlDataAdapter("",con);
con.Open();
da.Fill(dataset1,"e");
con.Close();
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataTable table1 = new DataTable();
table1 = dataset1.Tables["e"];
table1.DefaultView.RowFilter = "family_m like'%" + textBox1.Text + "%'";
if (table1.DefaultView.Count == 0)
MessageBox.Show("رکوردی با این مشخصات یافت نشد");
dataGrid1.DataSource = table1.DefaultView;
table1 = null;
موفق باشید
نقل قول: جستجوی پویا در datagridView
شما باید با %Like% در رویداد Change شی TextBox که می خواهد جستجو انجام شود بنویسید
نقل قول: جستجوی پویا در datagridView
من قبلا می خواستم همچین کاری انجام بدم
برای این کار از DataView استفاده کردم . ولی یادمه برای مقادیره عددی زیاد چالب کار نکرده بود
ولی من دیدم و شنیدم که کامپوننت هایی وجود داره که گرید خودش همچین امکاناتی داره
فکر کنم DEV Component بود . به نظر استفاده از اونا خیلی بهتره
نقل قول: جستجوی پویا در datagridView
سلام
چرا برای جستجو ها از LINQ استفاده نمی کنید؟ محدوده عملیاتی که می توانید انجام دهید اصلا قابل قیاس با یک دستور Like نیست!
نقل قول: جستجوی پویا در datagridView
نقل قول:
نوشته شده توسط
Mahdi.Kiani
سلام
چرا برای جستجو ها از LINQ استفاده نمی کنید؟ محدوده عملیاتی که می توانید انجام دهید اصلا قابل قیاس با یک دستور Like نیست!
میشه یه نمونه مثال بزنید ؟
نقل قول: جستجوی پویا در datagridView
سلام
کسی سورس کامل اش را با دیتابیس اکسس آماده نکرده
نقل قول: جستجوی پویا در datagridView
سلام
اگه نظر منو می خوای بیا از Janus Gridex استفاده کن چون دو نوع فیلتر گذاری را از پیش تعیین شده دارا می باشد هم کارت را راحت می کند و هم زیبا
------------------------------------------------------------------------------------------
ماهی لب بسته را اندیشه قلاب نیست
نقل قول: جستجوی پویا در datagridView
نقل قول:
نوشته شده توسط
#aliyari_C
سلام
اگه نظر منو می خوای بیا از Janus Gridex استفاده کن چون دو نوع فیلتر گذاری را از پیش تعیین شده دارا می باشد هم کارت را راحت می کند و هم زیبا
------------------------------------------------------------------------------------------
ماهی لب بسته را اندیشه قلاب نیست
یه کد بزارید تا بفهمیم چجوریه ....................
نقل قول: جستجوی پویا در datagridView
کسی نیست ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟//