2013-07-07 8 views
0

я пытаюсь проверить состояние перед входом в него, но он входит в неправильном состоянииЕсли условие не работает ASp.Net?

мои условия являются,

if (Target.Tables[0].Rows[0]["T_B_CX"].ToString() == "0" && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) >= 100000) 

if (Target.Tables[0].Rows[0]["T_B_CX"].ToString() != "0" && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) > 10000000) 

значения являются

T_B_CX = 0 and T_B_C = 2500000000 

он должен войти в кулак условие, о котором я упомянул, но он входит во второе условие ???

Hopes за предложение спасибо заранее

+0

У вас есть код между двумя условиями? – Steve

+0

спасибо всем, что я проверил его полностью, я получаю «0» это значение, поэтому он не распознает значение Trim() помогите мне 1 –

ответ

0

вы можете преобразовать в целое и сделать сравнение, как показано ниже

if (Convert.ToInt(Target.Tables[0].Rows[0]["T_B_CX"].ToString()) == 0 && Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]) >= 100000) 

может быть, когда мы получаем ToString значения ячейки возвращает не точно строку, равную "0" , отладить и посмотреть, какое значение вы получите для Target.Tables[0].Rows[0]["T_B_CX"].ToString()

0

Между двумя условиями нет кода, поэтому первый принимается так, как ожидалось, тогда второй оценивается до 0 = 0.

Попробуйте написать что-то вроде этого

// Convert everything just one time here 
int tbcx = Convert.ToInt32(Target.Tables[0].Rows[0]["T_B_CX"]); 
long tbc = Convert.ToInt64(Target.Tables[0].Rows[0]["T_B_C"]); 

if(tbcx == 0 && tbc >= 100000) 
    // code here 
else if(tbcx != 0 && tbc > 2500000000) 
    // code here 

Кроме того, старайтесь избегать преобразования целочисленного значения в строку, а затем проверить на строку.
Это не имеет никакого смысла. Если целое число хранится в этой таблице, преобразуйте его в целое число и проверьте на целое число.

Смежные вопросы