2012-05-03 3 views
0

Возможно ли считывание значения из строки данных?Чтение значения из строки данных

У меня есть этот код:

bool CatchweightItem; 
if (dr_art_line["CatchweightItemt"].ToString() -> READ VALUE) 
{ 
    CatchweightItem = false; 
} 
else 
{ 
    CatchweightItem = true; 
} 

Так что я интересно, если можно прочитать значение этого поля. Если значение равно false, задайте переменную false, и если она задана в переменной true.

ответ

1
bool CatchweightItem = Convert.ToBoolean(dr_art_line["CatchweightItemt"].ToString()); 

Читать this

+0

Thats it? Но что с функцией if, мне нужно, чтобы установить значение в varibale CatchweightItem, поле beein red может быть истинным или ложным, и мне нужно использовать это значение – CrBruno

+0

@Bruno 'dr_art_line [" CatchweightItemt "]. ToString()' This строка читает вашу строку, а 'Convert.ToBoolean' преобразует эту строку в значение bool. будет ли ваше значение TRUE или true или TRue или TRUe, он назначит CatchweightItem с истинным значением, а если значение FALSE или False или false, оно назначит false CatchweightItem. Попробуй это. Я тестировал и использовал его несколько раз. –

1

Вы должны использовать оператор ==, чтобы проверить значение, как так:

bool CatchweightItem; 
if (dr_art_line["CatchweightItemt"].ToString() == "FALSE") 
{ 
    CatchweightItem = false; 
} 
else 
{ 
    CatchweightItem = true; 
} 

На самом деле, вам не нужно весь этот код, вы можете также сделать это намного короче и чище:

bool CatchweightItem = (dr_art_line["CatchweightItemt"].ToString() == "TRUE") 
+0

Но что, если значение - TrUe или FalSe или tRue или falsE, или существует несколько способов сохранения этого значения. В вашем случае используйте '.ToLower()' или 'ToUpper()' или просто 'Convert.ToBoolean', который просто проверяет все возможные значения строки –

+0

. Большое спасибо! Вы решили мою проблему! – CrBruno

+0

Вы правы, но значение исходит из XML-документа, и мы aggred, что он напишет «false» – CrBruno

1

Если DataColumn-х DataType является bool в любом случае, вы должны использовать этот метод сильного типа:

bool isCatchweightItem = dr_art_line.Field<bool>("CatchweightItemt"); 

DataRowExtensions.Field<T> Method (DataRow, String)

Он также поддерживает обнуляемые тип.

1
if(string.Compare(Convert.ToString(dr_art_line["CatchweightItemt"])+"","false",true)==0) 
     { 
CatchweightItem = false; } 
else { 
CatchweightItem = true; } 

Это позволит избежать нулевого значения, поступающего из базы данных, а также проверки нечувствительности к регистру.

+0

Огромное спасибо, но у меня есть еще один ... :-) – CrBruno

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