PDA

View Full Version : سوال: جستجو بر اساس مقادیر داخل TextBox



manager_mrd
شنبه 28 فروردین 1389, 12:32 عصر
من برنامه ي جستجو رو تو برنامه ام نوشتم و كار ميكنه اما اگر تكست باكسي كه جستجو بر اساس اون انجام ميشه خالي باشه و جستجو كنم كل جدول مورد نظر رو برام ليست ميكنه و اگر اين كار رو بر حسب مقايسه بين دو تا تكست باكس انجام بدم و يكي خالي باشه باز هم كل جدول مورد نظر رو تو ديتا گريد ويو نشون ميده اشكال از چيه؟؟

Argonod
شنبه 28 فروردین 1389, 12:43 عصر
اگه درست متوجه شده باشم میخوای اگه تکست باکس خالی بود برات لیست نکنه
یه شرط بزار که اگه تکست باکس خالی بود این کار رو نکنه

if(textbox1.Text.Equals(""))

manager_mrd
شنبه 28 فروردین 1389, 12:57 عصر
اگه درست متوجه شده باشم میخوای اگه تکست باکس خالی بود برات لیست نکنه
یه شرط بزار که اگه تکست باکس خالی بود این کار رو نکنه

if(textbox1.Text.Equals(""))
نه منظورم اين نبود منظورم اينه كه بين دو تا تكست باكس ميخوام مقايسه كنه كه هر كدوم كه پر بود يا حتي دو تاش مقايسه رو بر اساس اون انجام بده اما اگه يكيشو خالي بذارم كل جدول رو نشون ميده

Argonod
شنبه 28 فروردین 1389, 14:17 عصر
نا مفهوم توضیح دادی
اینطوری که حدس میزنم شما 2 تا تکست باکس داری و میخوای بر اساس یکی از اونها و یا جفتش عمل جستجو انجام بدی
مثلا میگیم تکست باکس اول نام و تکست باکس دومی نام خانوادگی هست
اگه نام رو پر کنی و نام خانوادگی رو خالی بزاری همه نامها رو برات میاره؟
چه اتفاقی میافته؟

بیشتر باید توضیح بدی

manager_mrd
شنبه 28 فروردین 1389, 15:06 عصر
نا مفهوم توضیح دادی
اینطوری که حدس میزنم شما 2 تا تکست باکس داری و میخوای بر اساس یکی از اونها و یا جفتش عمل جستجو انجام بدی
مثلا میگیم تکست باکس اول نام و تکست باکس دومی نام خانوادگی هست
اگه نام رو پر کنی و نام خانوادگی رو خالی بزاری همه نامها رو برات میاره؟
چه اتفاقی میافته؟

بیشتر باید توضیح بدی
بله اگه مثلا نام رو بدم و نام خانوادگي خالي باشه كل جدول رو با كل ستونهاش بهم ميده ولي اگه هر دو تاشو پر كنم فقط همون سطري رو كه شامل او ن نام ونامخانوادگي هست بهم ميده

Argonod
شنبه 28 فروردین 1389, 21:27 عصر
چون هنوز متوجه نشدم که منظورت چیه. آیا میخوای وقتی نام خانوادگی خالی هست هیچ لیستی بهت نشون نده یا فقط نامها رو بهت نشون بده؟
الان چندین پسته که ما داریم روی صورت مساله کار میکنیم چرا نمونه کد رو قرار نمیدی که هم خیال خودت و هم اونی که میخواد کمکت کنه راحت بشه؟

حالا فرض رو بر این میزارم که میخوای وقتی نام یا نام خانوادگی خالی هست هیچ رکوردی نشون داده نشه

if(textbox1.Text.Equals("") || textbox2.Text.Equals(""))
{
MessageBox.Show("Fields could not be empty");
.......
}

اگه فرض رو بر این بزارم که وقتی نام خانوادگی خالی هست فقط جستجو بر اساس نام انجام بشه

if(textbox1.Text.Equals("") && !(textbox2.Text.Equals("")))
{
Search for names
}

تکست باکس 2 رو فیلد نام در نظر بگیر
والا بیشتر از این دیگه سر در نمیارم که مشکلت کجا هست

kienshien
یک شنبه 29 فروردین 1389, 00:53 صبح
من برنامه ي جستجو رو تو برنامه ام نوشتم و كار ميكنه اما اگر تكست باكسي كه جستجو بر اساس اون انجام ميشه خالي باشه و جستجو كنم كل جدول مورد نظر رو برام ليست ميكنه و اگر اين كار رو بر حسب مقايسه بين دو تا تكست باكس انجام بدم و يكي خالي باشه باز هم كل جدول مورد نظر رو تو ديتا گريد ويو نشون ميده اشكال از چيه؟؟

میشه query که نوشتی اینجا بگذاری شاید تونستم کمکت کنم.

meri_rad
یک شنبه 29 فروردین 1389, 08:32 صبح
بله اگه مثلا نام رو بدم و نام خانوادگي خالي باشه كل جدول رو با كل ستونهاش بهم ميده ولي اگه هر دو تاشو پر كنم فقط همون سطري رو كه شامل او ن نام ونام خانوادگي هست بهم ميده
اگه مثلا مي خواي اگه نام=علي و نام خانوادگي = علي نژاد بود تمام كسايي كه نامشون علي علي نژاد رو بده واگه فقط نام پر بود تمام كسايي كه نامشون علي بده ميشه از اين كد استفاده كني


qry="select * from table wher 1=1 ";
if(text1.text!="")
qry+=" and name="+text1.text;
if(text2.text!="")
qry+=" and family="+text2.text;

behnam25214
یک شنبه 29 فروردین 1389, 10:31 صبح
برای مثال اینطور هم میتونی استفاده کنی.




if (text1.Text != "" && text2.Text == "")
{
Ssql = "Select * From Customer Where name='" + textBox1.Text+"'";
}
if (text1.Text == "" && text2.Text == "")
{
Ssql = "Select * From Customer";
}
if (text1.Text == "" && text2.Text != "")
{
Ssql = "Select * From Customer Where Lastname='" + textBox2.Text + "'"; ;
}
if (text1.Text != "" && text2.Text != "")
{
Ssql = "Select * From Customer Where name='" + textBox1.Text + "'"+"and Lastname='"+textBox2.Text+"'";
}



البته یکم ویرایشش کنی کار میکنه.

kienshien
یک شنبه 29 فروردین 1389, 14:46 عصر
اگه مثلا مي خواي اگه نام=علي و نام خانوادگي = علي نژاد بود تمام كسايي كه نامشون علي علي نژاد رو بده واگه فقط نام پر بود تمام كسايي كه نامشون علي بده ميشه از اين كد استفاده كني


qry="select * from table wher 1=1 ";
if(text1.text!="")
qry+=" and name="+text1.text;
if(text2.text!="")
qry+=" and family="+text2.text;


اگه مستقیما TextBox رو بدی تو Query از نظر امنیتی به مشکل بر می خوری بهتر است یا پارامتر براش تعریف کنی یا به این شکل عمل کنی

string Query = "Select * from Table Where Name = '{0}'";
Query = string.format(Query,textBox.text);