PDA

View Full Version : Search کردن در DataGridView



firefox2009
چهارشنبه 04 اردیبهشت 1387, 16:45 عصر
با سلام :
لطفا کد Search کرن در DataGridView را بنوسید .
به طور مثال :
(DataGridView ما دارای سه تا ستون باشد . اگر بخواهیم بر منای اطلاعات ستون اول serach را انجام دهیم . از چه کدی استفاده کنم .؟ اگه داده serach شده در ستون اول پیدا شد حال می خواهم رنگ زمینه Row مورد نظر تغییر کند و اطلاعات ان row به طور کامل در یک messegebox ظاهر شود .)

با تشکر :چشمک:

smt_414
چهارشنبه 04 اردیبهشت 1387, 16:54 عصر
سلام

مواردی که شما احتیاج دارید
با جستجو در همین بخش پیدا می کنید :چشمک:

موفق باشید

firefox2009
پنج شنبه 05 اردیبهشت 1387, 10:16 صبح
با سلام:
هر چه گشتم نبود که نبود یه مطلب کامل وجامع نبود. اگه کسی بلده خواهشن جواب دهد .
من تنها یک DataGridView دارم می خواهم Search کنم .
کسی نیست کد هایلات کردن سطر پیدا شده پس از search را بداند .
PLEASE!!!!!!!!!!!!

eyes_shut_number1
پنج شنبه 05 اردیبهشت 1387, 10:23 صبح
دوست من
سرچ کردن رو توی دیتا ست میکنن و گرید فقط برای نمایش آنهاست
البته مرسومش اینه

علیرضا مداح
پنج شنبه 05 اردیبهشت 1387, 12:00 عصر
سلام دوست عزیز
شما بهتر است عملیات فیلتر کردن را در DataSource انجام داده و نتایج را برای نمایش به دیتاگریدویو انتقال دهید ، به عنوان مثال اگر دیتاسورس شما یک DataTable است میتوانید بدینگرونه اطلاعات مورد نظر را فیلتر کنید :


dataTable.DefaultView.RowFilter = "Age > 25";


یا اگر دیتاسورس شما شی ء BindingSource میباشد ، میتواند با تنظیم پروپرتی Filter مربوط به این شی ء اطلاعات را فیلتر کنید ،
یا اینکه میتوانید اطللاعات را هنگام گرفتن کوئری از دیتابیس توسط دستورات SQL فیلتر کنید و بعد به دیتاگریدویو بفرستید ،
به هر حال روشهای گوناگونی برای انجام اینکار وجود دارد ...

gdevnb
شنبه 07 اردیبهشت 1387, 09:43 صبح
چرا از کدهای پست بالا استفاده نمی کنید؟

als_1360
شنبه 07 اردیبهشت 1387, 11:02 صبح
بهتره بعد از جستجو و پیدا کردن رکورد مورد نظر آن را سلکت کنی

gdevnb
شنبه 07 اردیبهشت 1387, 13:09 عصر
ببخشید چه نیازی به باز و بسته کردن کانکشن هستش؟
اطلاعاتتون رو فیلتر کنید.
در صورتی هم که با command ها بخواید کار کنید مثلآً در استفاده از دیتاریدر باز هم مشکلی نداره من تست کردم اگه نشد بگید کد بزارم(فعلاً کدش دم دستم نیست یعنی میزاشتم)

eyes_shut_number1
شنبه 07 اردیبهشت 1387, 13:30 عصر
شما اینجا فقط کانکشن رو تعریف کردن!
sqldataadapter خودش بازو بسته میکه!
باز و بسته کردن به این معناست
cnn.open()
cnn.close()
توی پست خودتون جواب اررور رو دادم


dap.fill(ds,"tbBook");

اینو درست کنید

gdevnb
شنبه 07 اردیبهشت 1387, 23:15 عصر
متوجه منظورتون نشدم. من همیشه کانکشن رو دستی باز و بسته می کنم.

این کد رو ببینید. ارور می گیره:





private void txtName_TextChanged(object sender, EventArgs e)
{
SqlConnection cnn = new SqlConnection("server=localhost ;database=Book;user id=;password=;integrated security=true");
SqlDataAdapter dap = new SqlDataAdapter("select * from tbBook where name like '%" + txtName.Text + "%'", cnn);
DataSet ds = new DataSet();
dap.Fill(ds);
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "tbBook";
{




ببین دوست عزیز کد شما در هر بار رخ دادن رویداد TextChange که ممکنه در طول اجرای برنامه 1000 بار هم اتفاق بیفته میاد یه کانکشن میسازه و ...
که این یعنی فاجعه!
بهترین روش همون روش فیلتر کردن اطلاعاته
تا زمانی که نیاز نیست به هیچ عنوان به بانکتون متصل نشید و در صورت اتصال در اولین فرصتی که کارتون تموم شد این اتصال رو قطع کنید.

gdevnb
شنبه 07 اردیبهشت 1387, 23:43 عصر
public partial class Form1 : Form
{
SqlConnection con;
SqlCommand com;
DataSet ds;
SqlDataAdapter da;

public Form1()
{
InitializeComponent();
con = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=DB;Integrated Security=True");
com = new SqlCommand("select * From Table", con);
ds = new DataSet();
da = new SqlDataAdapter(com);

con.Open();
da.Fill(ds, "Table");
con.Close();
dataGridView1.DataSource = ds.Tables[0];

}
private void textBox1_TextChanged(object sender, EventArgs e)
{
ds.Tables[0].DefaultView.RowFilter = "f_Name =" + textBox1.Text;
}
}

dramirali021
چهارشنبه 13 خرداد 1388, 08:46 صبح
ببین دوست عزیز کد شما در هر بار رخ دادن رویداد TextChange که ممکنه در طول اجرای برنامه 1000 بار هم اتفاق بیفته میاد یه کانکشن میسازه و ...
که این یعنی فاجعه!
بهترین روش همون روش فیلتر کردن اطلاعاته
تا زمانی که نیاز نیست به هیچ عنوان به بانکتون متصل نشید و در صورت اتصال در اولین فرصتی که کارتون تموم شد این اتصال رو قطع کنید.

آقا خيلي ممنون دستتون درد نكنه به خاطر كدي كه گذاشتين كارم با اين كد راه افتاد