2016-10-19 2 views
1

У меня есть этот код ... запрос в C# с параметрамиSQL Строка запроса Параметры C#

var sql = @"select * from Passenger t0  
      join Ticket t1 on t0.PassengerID = t1.PassengerID    
      where t1.IsArrived = @IsArrived "; 
      List<SqlParameter> parameters = new List<SqlParameter>() { 
        new SqlParameter 
        { 
         ParameterName = "DateFrom", 
         Value = (object)fromDate ?? DBNull.Value, 
         DbType = System.Data.DbType.DateTime 
        }, 
        new SqlParameter 
        { 
         ParameterName = "DateTo", 
         Value = (object)toDate ?? DBNull.Value, 
         DbType = System.Data.DbType.DateTime 
        }, 
        new SqlParameter 
        { 
         ParameterName = "IsArrived", 
         Value = route, 
         DbType =System.Data.DbType.Boolean 
        }, 
         new SqlParameter 
        { 
         ParameterName = "Search", 
         Value = $"'%{searchString}%'", 
         DbType = System.Data.DbType.String 
        } 
       }; 
      var sqlQuery = sql + 
       (fromDate != null ? "and t1.DateFrom >= @DateFrom " : " ") + 
       (toDate != null ? "and @DateTo >= t1.DateFrom" : " ") + 
       (!String.IsNullOrEmpty(searchString) ? "and (t0.FirstName like @Search or t0.LastName like @Search)" : " "); 

Параметр «@Search» сломана - как я могу изменить этот запрос на работу? Я не знаю, как написать значение для этого параметра. Я попытался

Value = [email protected]"'%{searchString}%'" 
Value = @"'%"+searchString+"%'", 
Value = $"\u0027\u0025{searchString}\u0025\u0027", 
Value = "\u0027\u0025"+searchString+"\u0025\u0027", 
Value = "\'%"+searchString+"%\'" 
+0

Не добавляйте такие параметры, как это невозможно прочитать. – mybirthname

+4

Используйте 'Value = $"% {searchString}% "'? – Phylogenesis

+0

Значение = $ "% {searchString}%" - ЭТО РАБОТАЕТ !!! <3 –

ответ

0

var sqlQuery = sql + (fromDate != null ? "and t1.DateFrom >= @DateFrom " : " ") + (toDate != null ? "and @DateTo >= t1.DateFrom" : " ") + (!String.IsNullOrEmpty(searchString) ? "and (t0.FirstName like @Search or t0.LastName like ' + @Search+ ')" : " ");

Не держите @Search внутри строки.

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