2015-05-24 3 views
0

У меня есть поле в моей таблице, которая NVARCHAR, когда привязывается в .Net он преобразуется в целое число (тест имеет значение «305415042-1»)Отображение данных NVARCHAR вопрос преобразуется в INT

Тест не работает, потому что «При отливке из числа значение должно быть числом меньше бесконечности»

Как явное или точное преобразование поля, чтобы оно фактически принимало его как строку и не пыталось преобразовать его как int?

Ошибка происходит здесь на BetReference (Это поле НЕ будет только цифры, но и для текущих данных у меня есть это число):

while (dr.Read()) 
{ 
    var b = new Bet 
    { 
     Id = (int) dr["Id"], 
     BetTypeId = (int) dr["BetTypeId"], 
     BetAmount = (decimal) dr["BetAmount"], 
     BetAmountToWin = (decimal) dr["BetAmountToWin"], 
     BetLocationId = (int) dr["BetLocationId"], 
     BetReferenceNumber = (dr["BetReferenceNumber"]).ToString() 
    }; 
    data.Add(b); 
} 

благодаря

EDIT:

Проблема была связана с тем, что типы данных в DB были float, и я пытаюсь преобразовать их в десятичные. Изменен тип данных для столбцов и работал.

+0

Почему он получает Int в DataReader? Вы набрали datareader? –

+0

У меня есть var dr = cmd.ExecuteReader(); затем Пройдите через dr.Read() – wele

+0

@wele Покажите нам * SELECT *. * NVARCHAR * не преобразуются в числа маленькими феями ... – xanatos

ответ

1

изменение

BetReferenceNumber = (dr["BetReferenceNumber"]).ToString() 

быть

BetReferenceNumber = dr["BetReferenceNumber"].ToString() 

Или [Как Предложил Arunprasanth KV]

BetReferenceNumber = Convert.ToString(dr["BetReferenceNumber"]) 
+1

use Convert.ToString (dr ["BetReferenceNumber"]) он также будет обрабатывать значение null –

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