PDA

View Full Version : سوال: طریقه صحیح کد نویسی فرم جست و جو



rezarko
یک شنبه 27 اسفند 1391, 18:02 عصر
سلام. من یه فرم جست و جو واسه کالا ها دارم که شامل آیتم های: از کد تا کد_نام_از قیمت تا قیمت_از قیمت خرید تا قیمت خرید و ..... است.
من واسه کد نویسی یکی از از این آیتم ها مشکلی ندارم مثلا: select * From _Kala where Price beetween ...
ولی میخوام هم زمان بر اساس قیمت و کد و هر ایتمی که کاربر چیزی توی اون بنویسه جست و جو کنم.
اگه بخوام واسه هر کدوم یه سلکت بنویسم خیلی زیاد میشه.
به نظر شما چیکار کنم؟
با تشکر

AGENT-20
یک شنبه 27 اسفند 1391, 19:43 عصر
شما میتونی اگر داده های تا 5000 رکورد که من تست کردم خوب جواب میده یک سلکت کلی بگیری و اونو به Data View وصل کنی
خود دیتا ویو هم به یک گرید ویوو>> datagridview.datasource=dataview
بعد دیتا ویو رو فیلتر کنی که با این کار میبینی گرید ویو فقط اطلاعات فیلتر شده رو نشون میده

dataview.rowfilter=" fildName = 'SAEED'";

rezarko
یک شنبه 27 اسفند 1391, 23:09 عصر
دوستان کسی کد کامل یا یه نمونه نداره؟

Mahmoud.Afrad
دوشنبه 28 اسفند 1391, 05:30 صبح
توی امضای من هست. برحسب نیازت یکی رو انتخاب کن.

rezarko
دوشنبه 28 اسفند 1391, 17:07 عصر
ممنون. من از روش Entity FrameWork که توضیح داده بودید رفتم ولی یه مشکل دارم.
من واسه این که از کد مثلا 14 تا 16 رو توی گرید نشون بدم از کد زیر استفاده کردم:
War = War.Where(p => p.war_ID.CompareTo(14) > 0 &&
p.war_ID.CompareTo(16) < 0);

ولی این کد فقط کالا های بین 14 و 16 رو میاره و خود 14 و 16 رو نمیاره. ممنون میشم بازم راهنمایی کنید.
با تشکر

Alireza.imani
دوشنبه 28 اسفند 1391, 17:48 عصر
این void رو من ازش استفاده می کنم :


void search()
{
con.Close();
string query = null;
try
{
switch (comboBox1.Text)
{
case "کد کاربر": { query = "SELECT * FROM [user] WHERE [کد کاربر] LIKE '" + textBoxX8.Text + "%'"; break; }
case "نام کاربری": { query = "SELECT * FROM [user] WHERE [نام کاربری] LIKE '" + textBoxX8.Text + "%'"; break; }
case "نام": { query = "SELECT * FROM [user] WHERE [نام] like '" + textBoxX1.Text + "%'"; break; }
case "نام خانوادگی": { query = "SELECT * FROM [user] WHERE [نام خانوادگی] like '" + textBoxX8.Text + "%'"; break; }
case "نوع کاربر": { query = "SELECT * FROM [user] WHERE [نوع کاربر] like '" + textBoxX8.Text + "%'"; break; }
case "تلفن": { query = "SELECT * FROM [user] WHERE [تلفن] like '" + textBoxX8.Text + "%'"; break; }
case "تلفن همراه": { query = "SELECT * FROM [user] WHERE [تلفن همراه] like '" + textBoxX8.Text + "%'"; break; }
default: { break; }
}


con.Open();
OleDbCommand command = new OleDbCommand();
command.CommandText = query;
command.Connection = con;
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = command;
DataTable objDataTable = new DataTable();
adapter.Fill(objDataTable);
con.Close();
dataGridViewX1.DataSource = objDataTable;
}
catch
{
con.Close();
}
}

rezarko
دوشنبه 28 اسفند 1391, 18:08 عصر
ممنون ولی من میخوام همزمان به انتخاب کاربر روی چند تا آیتم فیلتر بزارم

Mahmoud.Afrad
دوشنبه 28 اسفند 1391, 18:21 عصر
برای سلکت 14 و 16 مساوی رو هم دخیل کن. >= , <=

rezarko
دوشنبه 28 اسفند 1391, 20:39 عصر
ارور میده. کد کاملشو میزارید؟

rezarko
دوشنبه 28 اسفند 1391, 21:46 عصر
درست شد ممنون