جستجو در DatagridView با استفاده از خانه های آن
سلام دوستان
چطوری میتونیم شرط جستجو را در داخل خود دیتاگرید ویو قرار بدیم؟
یه برنامه دیدم که اطلاعات از بانک بایند میکرد و سطر اول اون خالی بود برای جستجو
یعنی اگه 5 تا فیلد داشتیم میتونستیم هم تک تک و هم به صورت پیشرفته سرچ کنیم
مثلا کسانی که نامش با ع شروع میشه فامیلیشون با ت شمارهشون 0912 و...
چطوری میشه خانه اد کرد به دیتاگریدی که از بانک پر میشه و چطوری میشه جستجو نوشت برای اون؟
ممنون میشم توضیح بدهید یا نمونه کد بذارید برام
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
کسی نمیدونه باید چیکار کرد!؟!؟!؟
اصلا روش اصولی که بشه داخل دیتاگرید جستجو کرد چیه؟!؟که بشه کارهای مثل چاپ و خروجی گرفتن اطلاعات در فایلهای اکسل انجام داد
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
به نام تنها برنامه نویس هستی
سلام ,
شما کار با بانک اطلاعاتی آشنایی دارید ؟
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
نقل قول:
نوشته شده توسط
ahmadreza517
به نام تنها برنامه نویس هستی
سلام ,
شما کار با بانک اطلاعاتی آشنایی دارید ؟
سلام بله نه به صورت حرفه ای اما بله
با جستجو کردن داخل بانک هم اشنا هستم مشکل خاصی ندارم که کاربر مقداری رو داخل تکس باکس بریزه و دیتاگرید فیلتر بشه
اما یه برنامه دیدم که از سطر اول دیتاگرید برای جستجو استفاده کرده بود میخوام اینو یاد بگیرم.
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
اگه امکانش هست برنامه قرار بدید.
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
من فقط برنامه نصبی رو جایی دیدم نهایت سعی خودمو بکنم که عکس برنامه رو براتون بذارم.
نمیدونم از دیتا گرید استفاده کرده بودند یا سایر ابزار گرید دات نت.معمولا از تکس باکس برای جستجو استفاده میکنن اما در این برنامه از اولین سطر به عنوان تکس باکس و برای جستجو استفاده شده بود.
2 ضمیمه
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
نقل قول:
نوشته شده توسط
ahmadreza517
اگه امکانش هست برنامه قرار بدید.
سلام
تصویراز از برنامه قبلا ازجستجو هستش
ضمیمه 88694
استفاده از ایتمهای کد بیمه و نام بیمار برای جستجو.همانطور که میبینید از سطر اول استفاده شده برای جستجو
ضمیمه 88695
کسی میتونه نمونه برنامه برام بذاره؟!؟ممنون میشم
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
میتونم با linq برات بنویسمش؟؟؟
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
دوست عزیز Linq نوشتم امیدوارم کمکت کنه.
ببخش نمیتونم پیوست کنم اینترنتم gprs هستش و سرعت مناسبی نداره.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace book
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var proc = from i in db.authers
select i;
dataGridView1.DataSource = proc;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var proc =(from i in db.authers
where i.firstname.Contains (textBox1 .Text ) && i.lastname .Contains(textBox2.Text)
select i);
dataGridView1.DataSource = proc;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var proc = (from i in db.authers
where i.lastname.Contains(textBox2.Text) && i.firstname.Contains(textBox1.Text)
select i);
dataGridView1.DataSource = proc;
}
}
}
موفق باشی
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
دوست عزیز میتونی از کلاس bindingsource شی بسازی؛ بعدش کوئری رو به این شی بایند کنی و بعد دیتاگریدویو رو به این شی بایند کنی. و برای جستجو هم کلاس bindingsource یه پراپرتی داره به نام فیلتر که میتونی از اون استفاده کنی.
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
فکر نمیکنم ایشون توی فیلتر کردن مشکلی داشته باشند فقط نمیدونند سطر اول رو خالی بذارند و ازش در جستجو کمک بگیرند.
من یک نمونه کد میذارم static string filter;
static string name;
static string lastname;
DataView dv;
private void button17_Click(object sender, EventArgs e)
{
dt.Clear();
//add first row
dt.Rows.Add();
da = new SqlDataAdapter("select * from tbl", connection);
//fill dt from row 2
da.Fill(dt);
//fill first row
dt.Rows[0]["id"] = 0;
dt.Rows[0]["name"] = "Type name here for search";
dt.Rows[0]["lastname"] = "Type lastname here for search";
dv = new DataView(dt);
dataGridView1.DataSource = dv;
da.Dispose();
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == 0)
{
name = Convert.ToString(dataGridView1.Rows[0].Cells["name"].Value);
lastname = Convert.ToString(dataGridView1.Rows[0].Cells["lastname"].Value);
if (!string.IsNullOrEmpty(name) && name != "Type name here for search")
filter += "name LIKE '" + name + "%' and ";
if (!string.IsNullOrEmpty(lastname) && lastname != "Type lastname here for search")
filter += "lastname LIKE '" + lastname + "%' AND ";
filter += "1=1 OR id=" + 0;
dv.RowFilter = filter;
filter = name = lastname = "";
filter = name = lastname = null;
}
}
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
نقل قول:
نوشته شده توسط
mafaman2003
فکر نمیکنم ایشون توی فیلتر کردن مشکلی داشته باشند فقط نمیدونند سطر اول رو خالی بذارند و ازش در جستجو کمک بگیرند.
من یک نمونه کد میذارم
static string filter;
static string name;
static string lastname;
DataView dv;
private void button17_Click(object sender, EventArgs e)
{
dt.Clear();
//add first row
dt.Rows.Add();
da = new SqlDataAdapter("select * from tbl", connection);
//fill dt from row 2
da.Fill(dt);
//fill first row
dt.Rows[0]["id"] = 0;
dt.Rows[0]["name"] = "Type name here for search";
dt.Rows[0]["lastname"] = "Type lastname here for search";
dv = new DataView(dt);
dataGridView1.DataSource = dv;
da.Dispose();
}
private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == 0)
{
name = Convert.ToString(dataGridView1.Rows[0].Cells["name"].Value);
lastname = Convert.ToString(dataGridView1.Rows[0].Cells["lastname"].Value);
if (!string.IsNullOrEmpty(name) && name != "Type name here for search")
filter += "name LIKE '" + name + "%' and ";
if (!string.IsNullOrEmpty(lastname) && lastname != "Type lastname here for search")
filter += "lastname LIKE '" + lastname + "%' AND ";
filter += "1=1 OR id=" + 0;
dv.RowFilter = filter;
filter = name = lastname = "";
filter = name = lastname = null;
}
}
سلام من تقریبا از کدهای شما استفاده کردم
if (e.RowIndex == 0)
{
MessageBox.Show(dgw.Rows[0].Cells["family"].Value.ToString());
dv.RowFilter = "family like '%" + dgw.Rows[0].Cells["family"].Value.ToString()+ "%'";
dgw.DataSource = dv;
}
جند تا مشکل داره یکی اینکه تا وقتی بیرون از سطر کلید نکنم جواب کارمو نمیده اما خودتون که میدونید like که در سرچ استفاده میکنیم کاراکتر به کاراکتر فیلتر میکنه من از این قابلیت میخوام استفاده کنم
دوم اینکه با موافقیت فیلتر میشه اما بعد از فیلتر شدن سطر اولی که اضافه کردیم پاک میشه
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
دوست عزیز منظورت از dt چیه؟
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
DataTable
تو این قسمت از DataTable استفاده کردم اما خودم معمولا از dataview , dataset استفاده میکنم
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
نقل قول:
نوشته شده توسط
mehdidanesh
دوست عزیز منظورت از dt چیه؟
منظور دیتاتیبل هست
نقل قول: جستجو در DatagridView با استفاده از خانه های آن
نقل قول:
جند تا مشکل داره یکی اینکه تا وقتی بیرون از سطر کلید نکنم جواب کارمو نمیده اما خودتون که میدونید like که در سرچ استفاده میکنیم کاراکتر به کاراکتر فیلتر میکنه من از این قابلیت میخوام استفاده کنم
دوم اینکه با موافقیت فیلتر میشه اما بعد از فیلتر شدن سطر اولی که اضافه کردیم پاک میشه
منم دقیقا همین مشکل رو دارم.
اگه کسی هست بدونه باید چیکار کرد ممنون میشم بگه .
نقل قول: جستجو در دیتاگریدویو با استفاده از خانه های آن
نقل قول:
نوشته شده توسط
Yanehsar
سلام
تصویراز از برنامه قبلا ازجستجو هستش
ضمیمه 88694
استفاده از ایتمهای کد بیمه و نام بیمار برای جستجو.همانطور که میبینید از سطر اول استفاده شده برای جستجو
ضمیمه 88695
کسی میتونه نمونه برنامه برام بذاره؟!؟ممنون میشم
دوست گرامی تصویر گریدی که گذاشتی گرید کنترل Microsoft نیست .ممکنه گرید شرکت Telerik یا شرکن Dev باشه ویا سایر ..من خودم از گرید Telerik وDev استفاده کردم بدون کد نویسی خاصی قابلیت جستجو در سطح گرید رو به همان شیوه در تصویر به شما میدهد.اگر بخوای همین شیوه رو پیاده سازی کنی باید گرید پیشفرض Microfost رو توسعه ش بدی.برای توسعه هم نمونه کد زیاد هست بگردی کدهای لازم رو پیدا میکنی.