csharpcollegian
Member
سلام وقت به خیر
دوستان من دارم یک برنامه ویندوزی تحت شبکه می نویسم که داخلش یک بخش جستجو قرار دادم که عملیات جستجو رو به ازای ورود هر حرف در تکست باکس انجام میده :
در پروژه های گذشتم کوئری جستجو رو مستقیما روی دیتابیس اعمال می کردم و نتیجه رو در دیتاگریدویو نمایش میدادم
و چون برنامه تک کاربره بود، دفعات اتصال بالا به دیتابیس مشکلی ایجاد نمی کرد (به ازای ورود هر حرف توسط کاربر، یک بار اتصال به دیتابیس و اعمال کوئری جستجو)
اما خب همونطور که خودتون می دونید این تکنیک، از لحاظ فنی ارزش بسیار پایینی داره...
در پروژه ی جدیدم چون برنامه چند کاربره و تحت شبکه هست میخوام از روش اصولی تر که خواندن یک بار اطلاعات از دیتابیس و اعمال کوئری جستجو روی دیتاست هست استفاده کنم (دوستان اگر تکنیک بهتری مدنظرتون هست مطرح کنید لطفا)
اما مشکلم اینجاست که بعد از اعمال جستجو روی دیتاست و گرفتن نتیجه در یک آرایه ی رکورد، نمی تونم اون رو در دیتا گرید ویو نمایش بدم. از تکنیک های زیر استفاده کردم ولی به نتیجه نرسیدم
اول سعی کردم به صورت دستی یه جدول به دیتاست اضافه کنم و رکوردها رو به اون جدول اضافه کنم که نشد :
خطایی که در رابطه با کد بالا داد :
بعد سعی کردم نتیجه رو در یک جدول مستقل بریزم باز هم نشد :
خطایی که در رابطه با کد بالا داد :
دوستان عزیز ممنون میشم در این رابطه من رو راهنمایی کنید و ایراد روش های بالا رو هم توضیح بدید
خیلی ممنون
دوستان من دارم یک برنامه ویندوزی تحت شبکه می نویسم که داخلش یک بخش جستجو قرار دادم که عملیات جستجو رو به ازای ورود هر حرف در تکست باکس انجام میده :
PHP:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
Searching...
}
و چون برنامه تک کاربره بود، دفعات اتصال بالا به دیتابیس مشکلی ایجاد نمی کرد (به ازای ورود هر حرف توسط کاربر، یک بار اتصال به دیتابیس و اعمال کوئری جستجو)
اما خب همونطور که خودتون می دونید این تکنیک، از لحاظ فنی ارزش بسیار پایینی داره...
در پروژه ی جدیدم چون برنامه چند کاربره و تحت شبکه هست میخوام از روش اصولی تر که خواندن یک بار اطلاعات از دیتابیس و اعمال کوئری جستجو روی دیتاست هست استفاده کنم (دوستان اگر تکنیک بهتری مدنظرتون هست مطرح کنید لطفا)
اما مشکلم اینجاست که بعد از اعمال جستجو روی دیتاست و گرفتن نتیجه در یک آرایه ی رکورد، نمی تونم اون رو در دیتا گرید ویو نمایش بدم. از تکنیک های زیر استفاده کردم ولی به نتیجه نرسیدم
اول سعی کردم به صورت دستی یه جدول به دیتاست اضافه کنم و رکوردها رو به اون جدول اضافه کنم که نشد :
PHP:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
DataRow[] resultRows = ds.Tables["tblVisitant"].Select("Name Like '%S%' ");
DataTable dt = new DataTable("tblSearch");
dt = ds.Tables["tblVisitant"].Clone();
ds.Tables.Add(dt);
foreach (DataRow row in resultRows)
ds.Tables["tblSearch"].Rows.Add(row);
dgvMain.DataBindings.Clear();
dgvMain.DataBindings.Add("DataSource", ds, "tblSearch");
}
بعد سعی کردم نتیجه رو در یک جدول مستقل بریزم باز هم نشد :
PHP:
private void txtSearch_TextChanged(object sender, EventArgs e)
{
DataRow[] resultRows = ds.Tables["tblVisitant"].Select("Name Like '%س%' ");
DataTable dt = new DataTable("tblSearch");
dt = ds.Tables["tblVisitant"].Clone();
foreach (DataRow row in resultRows)
dt.Rows.Add(row);
dgvMain.DataSource = dt;
}
دوستان عزیز ممنون میشم در این رابطه من رو راهنمایی کنید و ایراد روش های بالا رو هم توضیح بدید
خیلی ممنون