PDA

View Full Version : چگونه کلاس جستوجو با return بنویسم



pooryadevil
پنج شنبه 16 مرداد 1393, 08:24 صبح
با سلام

دوستان من میخواستم ببینم چطور میتونم یک کلاسی بنویسم که return داشته باشه و بشه داخل جدول جستوجو انجام بده طوری که رکوردهایی که دارای اسم ali هستند نمایش بده

pooryadevil
پنج شنبه 16 مرداد 1393, 21:21 عصر
دوستان کسی نیست راهنمایی کنه ؟

aminmousavi
جمعه 17 مرداد 1393, 01:11 صبح
سلام دوست عزیز ، سوالتون مقداری گنگ هست ، شاید برای همین اساتید جوابتون رو ندادن .

-منظورتون از جدول چیه ؟ جدول Database یا DataTable ?
- اگر منظورتان جدول Database هست با چه روشی با دیتابیس کار میکنید ؟
- با کوئری میخواهید سرچ کنید یا با C# ?
- در قسمتی گفتید رکورد هایی که درون آنها Ali هست رو نمایش بده !!! پس میخواین مقدار بازگشتی کلاس تون چی باشه ؟!

pooryadevil
جمعه 17 مرداد 1393, 03:19 صبح
ببینید در اصل این چیزی که استاد از ما خواسته این بوده

اول اینکه ما جدولهامون رو وارد dataset کردیم بعد میخواییم اونجا query جستوجو بنوسیم که سرچی رو انجام بده برامون که با like باشه برای مثال برامون از جدول مورد نظر رکوردهای که مثلا حرف reza دارن رو نمایش بده
حالا این چیزی که از ما خواسته اینه که ما یه class تعریف کنیدم که با استفاده از اون کلاس یه متودی بگیریم که این سرچ رو انجام بده
توی تعریف class هم گفته که باید Return داشته باشه و از نو datatable باشه

من همچین چیزی متوجه شدم

pooryadevil
جمعه 17 مرداد 1393, 03:25 صبح
البته این کار رو هم برای این گفت انجام بدیم که class search داشته باشیم که بتونیم اون رو توی هر پروژه ایی که خواستیم استفاده کنیم و نخواییم دوباره کد زنی کنیم

aminmousavi
جمعه 17 مرداد 1393, 04:59 صبح
سلام دوست عزیز ، هنوز من به طورکامل صورت مساله رو متوجه نشدم (مقدار کلمات فنی هم نابجا استفاده کردید)

با چیزی که متوجه شدم به نظرم اینکارو انجام بدید :

- یک کلاس بسازید
- یک تابع سازنده بسازید که یک پارامتر ورودی دارد از نوع رشته ای برای نوشتن SQL Command
- پارامتر ورودی تابع سازنده رو درون یک پروپرتی Property ذخیره کنید (همان SQL Command)
- یک متد به نام سرچ بسازید بسازید با دو پارامتر ورودی یکی به نام Field یکی به نام Value (در اصل شما با این متود سرچ میکنید پارامتر فیلد مشخض میکند تو کدوم فیلد میخواهید سرچ کنید و پارامتر Value مشخص میکند چه مقداری رو دارید سرچ میکنید) ، همچنین این متود یک خروجی DataTable یا DataSet بزارید
- تو بدنه ی متد به SQL با Connection Stiring وصل میشد و مقدار SQL Command رو با تلفیق Field و Value به SQL میدید و خروجی که بر میگردونه رو شما به عنوان خروجی متد پاس میدید .

به طور مثال اینجوری استفاده میکنید :



esmeClass test =new esmeClass("SELECT * FROM Users");
test.Search("name","reza")



فقط باید یک if بزاری که اگر Field و Value مقدار داشتن دستور Where رو به SQL Command اضافه کنی (به همراه Like) و اگر نداشتن اضافه نکنی

pooryadevil
چهارشنبه 22 مرداد 1393, 15:21 عصر
من راستیتش query هام رو داخل dataset مینویسم بعد فرا خونی میکنم توی برنامم حالا اینجا که شما به اینصورت نوشتید رو نمیدونم چطور باید اینکارو کرد که در ان واحد query نوشت
اگر براتون مقدوره کد کلاس رو قرار بدین ممنون میشم

aminmousavi
چهارشنبه 22 مرداد 1393, 15:41 عصر
نوع سادش به این شکل میشه :



public class ClassSearch
{
string connectionString = @"connectionstring";
public DataTable Search(string NameTable, string CommandText)
{
DataSet ds = new DataSet();
SqlConnection Connection = new SqlConnection(connectionString);
SqlDataAdapter DA = new SqlDataAdapter();
DA.SelectCommand = new SqlCommand();
DA.SelectCommand.Connection = Connection;
DA.SelectCommand.CommandText = CommandText;
DA.Fill(ds, NameTable);
return ds.Tables[0];
}
}






ClassSearch search = new ClassSearch();
DataTable dt = search.Search("Users", "SELECT * FROM USERS WHERE Name LIKE '%امین%'");