DbCommand, должен объявить ошибку переменной
Это мой код Я также добавил параметр db, но он все еще показывает ошибку (при выполнении). Должен объявить скалярную переменную
DbCommand command;
StringBuilder query = new StringBuilder(
@"SELECT isnull(UpsellService_OID,'') UpsellService_OID," + Environment.NewLine +
" isnull(ServiceName,'') ServiceName," + Environment.NewLine +
" isnull(ServiceDescription,'') ServiceDescription," + Environment.NewLine +
" isnull(Create_By,'') Create_By," + Environment.NewLine +
" isnull(Create_Date,'') Create_Date," + Environment.NewLine +
" isnull(Modify_By,'') Modify_By," + Environment.NewLine +
" isnull(Modify_Date,'') Modify_Date," + Environment.NewLine +
" isnull(Active_f,'') Active_f" + Environment.NewLine +
"FROM TRGPAYROLL.ZONG.UPSELLSERVICES " + Environment.NewLine +
"WHERE 1 = 1");
if (!string.IsNullOrEmpty(idObject.ServiceName))
{
query.Append(" AND ServiceName like '%' @ServiceName '%'");
}
command = db.GetSqlStringCommand(query.ToString());
if (!string.IsNullOrEmpty(idObject.ServiceName))
{
db.AddInParameter(command, "ServiceName", DbType.String, idObject.ServiceName);
}
return command;
2 ответа
Я бы переписал последнюю часть вашего кода таким образом
if (!string.IsNullOrEmpty(idObject.ServiceName))
{
query.Append(" AND ServiceName like @ServiceName");
}
command = db.GetSqlStringCommand(query.ToString());
if (!string.IsNullOrEmpty(idObject.ServiceName))
{
db.AddInParameter(command, "@ServiceName", DbType.String, "%" + idObject.ServiceName + "%");
}
Подстановочный знак добавляется непосредственно к значению параметра, в то время как заполнитель параметра должен быть свободен от любых конкатенаций строк. Однако многие детали отсутствуют, чтобы быть уверенными в правильности этого ответа. В частности, я могу предположить только внутреннюю работу методов GetSqlStringCommand
а также AddInParameter
@ServiceName
переменная не объявлена в вашем операторе SQL. Добавить в начало что-то вроде
DECLARE @ServiceName AS nchar(32)
SET @ServiceName = ....