У меня есть приложение, выполняющее поиск с несколькими полями для разных критериев.Параметры SQL в трассировке не соответствуют заданным значениям в C#
Мои модели данных, как представляется, обновляя соответствующим образом, когда я отладки, но то, что я прохожу в качестве параметров SQL не исправить, я думаю. След SQL показал мне, что это то, что отправляется в БД.
exec nu_sp_Codetable_GetWSub @address=N'1234 r%', @wo=N'%', @sub=N'%', @daysback=1096, @marketareaid=99, @po=N'%', @plan=N'%', @super=N'%', @builder=N'%'
Мой вопрос связан с теми, «N» перед моими реальными значениями параметров (мы используем модуль по умолчанию, так как причины). Я не знаю, откуда она взялась, если она исходит из моего кода. Вот код, который отправляет этот поиск в БД.
UpdateMainGrid(String.Concat(Address, "%"), "%", "%", SelectedDaysBack, SelectedMarketAreaItem.marketareaid, "%", "%", "%", "%")
Я побежал это как простейшую форму поиска, и вы можете увидеть, где код (для этого конкретного поиска) имеет модуль по умолчанию те жестко закодированное для каждого параметра. В этом примере только переменная Address фактически является установленным значением.
Пара отмечает, что метод обновления, показанный выше, передает литературные строки в классы, которые мы используем для подключения к SQL, поэтому я не предоставил код для этого. Отладка показывает, что данные не изменяются во время этих шагов, это просто отличается в трассировке SQL. Кроме того, другие запросы, которые я искал в трассировке, НЕ включают «N». Я не знаю, какая разница, если таковая имеется.
«N» означает, что значение рассматривается как NVARCHAR вместо VARCHAR. – Crowcoder
Спасибо. Это довольно простой ответ. Я терпеть неудачу в google ... – Jon