PDA

View Full Version : چک کردن پر یا خالی بودن تکست



iman_me
یک شنبه 16 بهمن 1390, 20:44 عصر
سلام
من یه سری تکست باکس دارم که باید در صورت پر بودن هرکدام یه دستور به sql ارسال شود
من از این دستور استفاده میکنم اما به نظرم اشتباه

if (!String.IsNullOrEmpty(TextBox1.Text) & !String.IsNullOrEmpty(TextBox1.Text) & !String.IsNullOrEmpty(TextBox3.Text) & !String.IsNullOrEmpty(TextBox3.Text))
{
cmd += string.Format(" WHERE ........");
}
else if (!String.IsNullOrEmpty(lookupComboBox7.Text) & String.IsNullOrEmpty(TextBox1.Text) & String.IsNullOrEmpty(TextBox2.Text) & String.IsNullOrEmpty(TextBox3.Text))
{
cmd += string.Format(" WHERE ........");
}
else if (String.IsNullOrEmpty(lookupComboBox7.Text) & !(String.IsNullOrEmpty(TextBox1.Text)) & String.IsNullOrEmpty(TextBox2.Text) & String.IsNullOrEmpty(TextBox3.Text))
{
cmd += string.Format(" WHERE ........");
}
else if (!String.IsNullOrEmpty(lookupComboBox7.Text) & String.IsNullOrEmpty(TextBox1.Text) & String.IsNullOrEmpty(TextBox2.Text) & String.IsNullOrEmpty(TextBox3.Text))
{
cmd += string.Format(" WHERE ........");
}
else if (!String.IsNullOrEmpty(lookupComboBox7.Text) & String.IsNullOrEmpty(TextBox1.Text) & String.IsNullOrEmpty(TextBox2.Text) & String.IsNullOrEmpty(TextBox3.Text))
{
cmd += string.Format(" WHERE ........");
}

parvizwpf
یک شنبه 16 بهمن 1390, 21:25 عصر
برای این مدل باید متد بنویسی و وردیها رو تعریف کنی بعد اونجا با
String.Empty
Null
یا
""
چک کنی

majidrezaei2007
دوشنبه 17 بهمن 1390, 00:15 صبح
کارت درسته

iman_me
دوشنبه 17 بهمن 1390, 00:17 صبح
خوب اینم میشه همون که داخل متد هم باید برای 4 تا تکست 16 بار شرط رو بنویسم
بزارید واضح تر بگم می خوام اگه تکست 1 پر بود همون تکست یک جستجو بشه اگه تکست 1و2 پر بود هر جفتش اگه 2و3 بود خب 2و3 جستجو بشه

mmd2009
دوشنبه 17 بهمن 1390, 00:33 صبح
با سلام

به نظر من واسه خوانایی بهتر کد به این شکل عمل کنی خیلی بهتر هستش.

فرضا یک جستجو داریم که بین 4 چیز قراره جستجو انجام بشه که شرط اولیمون رو میذارم بر اساس چیزی که حتما باید جز جستجو باشه و بقیه And هارو به صورت متد می نویسیم

به این شکل :



private string GetData()
{
if (string.IsNullOrEmpty(txtDate.Text.Trim()))
{
return string.Empty;
}
return " and date =" + txtDate.Text.Trim();
}
private string GetName()
{
if (string.IsNullOrEmpty(txtName.Text.Trim()))
{
return string.Empty;
}
return " and name =" + txtName.Text.Trim();
}
private string GetFamily()
{
if (string.IsNullOrEmpty(txtFamily.Text.Trim()))
{
return string.Empty;
}
return " and family =" + txtFamily.Text.Trim();
}

private void btnSearch_Click(object sender, EventArgs e)
{
var cmd = new SqlCommand
{
CommandText =
"select * from MyTable where level = " + cmbLevel.Text + GetData() + GetName() +
GetFamily()
};

}


موفق باشید

mahan.2002
دوشنبه 17 بهمن 1390, 07:07 صبح
با سلام
فکر میکنم اینم راه خوبیه

Sqlcommand cmd = new SqlCommand();


string C="select * from Table where 1 = 1";

if (!String.IsNullOrEmpty(TextBox1.Text)
C += " and date =" + TextBox1.Text.trim();

if (!String.IsNullOrEmpty(TextBox2.Text)
C += " and date =" + TextBox2.Text.trim();


if (!String.IsNullOrEmpty(TextBox3.Text)
C += " and date =" + TextBox3.Text.trim();


cmd.CommandText =c;

iman_me
دوشنبه 17 بهمن 1390, 10:55 صبح
سلام با تشکر از همه دوستان
از همون راه دوستمون mmd2009 استفاده کردم با یه تغییر چون تعداد تکست هام زیاده منم حوصله تکرار کد رو ندارم یه تغییراتی دادم که تغییرات رو مینویسم شاید به درد کسی بخوره

private string Date(string txt,string cmd)
{
if (String.IsNullOrEmpty(txt.Trim()))
return string.Empty;
return cmd+ txt.Trim();
}





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

mmd2009
دوشنبه 17 بهمن 1390, 12:08 عصر
چطوری از این متد استفاده کردی ؟

اگر بخوای چندتا پارامتر رو in بکنی یا and بکنی یا or بکنی یا like یا ..... این متد فکر نکنم جوابگو باشه. مگه اینکه یک کار دیگه کردی.


من خودم یک راه جالب به کار می برم واسه این کارا که فرضا تو برنامه هایی که مینویسم واسه گزارش بین 100 هزار رکورد به بالا این جستجوهارو به این شکل انجام بده. به نظر من راه خوبیه و البته بهتر از اون پیدا کنم سمتش میرم :چشمک:

موفق باشید

iman_me
دوشنبه 17 بهمن 1390, 12:31 عصر
نه کار دیگه ای نکردم داره جواب میده

mmd2009
دوشنبه 17 بهمن 1390, 14:10 عصر
میشه لطف کنی و یک نمونه کل کلی از کارت رو بذاری که ببینیم چطوری با این متد این کارو کردی. اخه من هرچی فکر میکنم نمیدونم چطوری چندتارو با هم and و or یا .... میکنی با این متد. اخه ورودی هات و خروجی هات به این شکل من رو به اشتباه وا داشته و میخوام بدونم اشتباه کار من کجاست که منظورتونو درست متوجه نشدم

با تشکر

iman_me
دوشنبه 17 بهمن 1390, 21:51 عصر
اخ ببخشید حواسم نبود اشتباه کد رو کپی کردم


private string Date(string txt,string cmd)
{
if (String.IsNullOrEmpty(txt.Trim()))
return string.Empty;
return String.Format(cmd, txt.Trim());
}




الان درست شد