PDA

View Full Version : عمل نکردن این شرط



samaram
جمعه 30 مهر 1389, 11:16 صبح
کد زیر رو ببینید:


DataTable rst = new DataTable();
SqlCommand rscmd = new SqlCommand("select modem from [TB_customer] where sh=@g",con);
rscmd.Parameters.AddWithValue("@g",textBox10 .Text );
SqlDataReader Reader5 = rscmd.ExecuteReader();
string sssss = null;
rst.Load(Reader5);
foreach (DataRow row in rst.Rows)
sssss = row[0].ToString();

if (sssss == "__")
{
MessageBox.Show("modem nadarad");
radioButton2.Checked = true;
cmbmodem.Enabled = false;


}
else
{
MessageBox.Show("modem darad");
radioButton1.Checked = true;
cmbmodem.Enabled = true;
cmbmodem.DataBindings.Add(new Binding("Text", ds, "TB_customer.modem"));
}
Reader5.Close();

اگر این شرط درست باشه (یعنی sssss="__") باز هم شرط مقابل if اجرا نمیشه. یعنی کلا علی رغم اینکه اون فیلد مودم تو بانکم مقدار __ داره بازم هیچوقت شرط اجرا نمیشه!!!
چرا؟

hojjatshariffam
جمعه 30 مهر 1389, 12:54 عصر
کد زیر رو ببینید:



foreach (DataRow row in rst.Rows)
sssss = row[0].ToString();

Reader5.Close();
اگر این شرط درست باشه (یعنی sssss="__") باز هم شرط مقابل if اجرا نمیشه. یعنی کلا علی رغم اینکه اون فیلد مودم تو بانکم مقدار __ داره بازم هیچوقت شرط اجرا نمیشه!!!
چرا؟
مشکلش توی Foreach هستش
فکر کنم می خواهید به ازای همه سطر ها کد های زیریش اجرا بشه پس کروشه یادتون رفته و فقط مقدار سطر آخر میره برای مقایسه با شرطتون
پس اینطوری امتحان کنید

foreach (DataRow row in rst.Rows)
{
sssss = row[0].ToString();

if (sssss == "__")
{
MessageBox.Show("modem nadarad");
radioButton2.Checked = true;
cmbmodem.Enabled = false;
}
else
{
MessageBox.Show("modem darad");
radioButton1.Checked = true;
cmbmodem.Enabled = true;
cmbmodem.DataBindings.Add(newBinding("Text", ds, "TB_customer.modem"));
}
}

samaram
جمعه 30 مهر 1389, 16:43 عصر
!! اوه. من واقعا معذرت میخوام. یه بی دقتی از خودم بود که textBox10 .Text اون تکست باکسی که برا مقایسه میخواستم استفاده کنم نبوده. اسمشو بعدا عوض کرده بودم. و این اسم مال یکی دیگه از کنترل هام بوده. شرمنده ام