2013-07-20 3 views
0

Мой запрос, как этоне может передать значение с плавающей точкой, как SqlParameter

DataSet ds = SqlHelper.ExecuteDataset(GlobalSettings.DbDSN, CommandType.Text, 

"SELECT TOP 1000 [ID],[Project]," + 
     "[Owner], " + 
     "[Consultant], " + 
     "[Contractor], " + 
     "[Value], " + 
     "[Level1], " + 
     "[Level2], " + 
     "[Status], " + 
     "[Category], " + 
     "[Country], " + 
     "[CreatedDate], " + 
     "[CreatedByID], " + 
     "[CreatedByName] " + 
    "FROM [Kontorting_Umbraco_DB].[dbo].[tbl_Projects] " + 
    " where [Category] like '%' + @Category + '%' " + 
    " and Country like'%'+ @country+'%' " + 
    " and value like '%'[email protected]+'%' " + 
    "  order by CreatedDate asc", 

       new SqlParameter("@Category","water") , 
       new SqlParameter("@Country", "Bahrain"), 
       new SqlParameter("@Value", 1000)); 

В этом коде поле «Значение» является поплавок в DB..And, когда выполняет это я получаю сообщение об ошибке

Ошибка конверсии при преобразовании значения varchar '%' в тип данных int.

может любой сказать мне, как использовать, как запрос с поплавком

ответ

2

Вы делаете

value like '%'[email protected]+'%' 

, где value является int.

LIKE only works with expressions of character data type.

Вы могли бы сделать

convert(nvarchar(100), value) like '%' + convert(nvarchar(100), @Value) + '%' 

вместо этого.

Обратите внимание, что вам, возможно, придется отрегулировать длину данных (в настоящее время 100).

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