Передайте параметры (которые могут быть нулевыми) и используйте их в выбранном запросе [дублировать]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Передайте параметры (которые могут быть нулевыми) и используйте их в выбранном запросе [дублировать]

Сообщение Anonymous »

У меня есть мой стандартный способ запуска запросов ... < /p>

Код: Выделить всё

parameters = new
{
Username = person.UserId,
person.Name,
person.Type,
person.Address1,
person.Address2,
person.City,
person.State,
person.PostalCode,
};

query = "SELECT TOP 1 * FROM people WHERE username = @Username AND name = @Name AND type = @Type AND address1 = @Address1 AND address2 = @Address2 AND city = @City AND state = @State AND postal_code = @PostalCode;"

rowId = Connection.QuerySingleOrDefault(
query,
param: parameters,
transaction: Transaction
);
Это работает нормально, пока что -то вроде человека. Userid не станет нулевым, что иногда случается. На самом деле это может случиться с большинством (если не со всеми) моими параметрами. В случае, если это произошло, мой запрос будет читать что-то подобное ... < /p>

Код: Выделить всё

SELECT TOP 1 * FROM people WHERE username = NULL AND name = 'Mr User' AND type = 'Active' AND address1 = '5555 Main Street' AND address2 = NULL AND city = 'MyCity' AND state = 'GA' AND postal_code = 55555;
Но этот запрос не удастся из -за username = null и address2 = null . Они оба должны иметь имя пользователя null , а адрес2 - null , чтобы запрос был правильно. и изменить его на «is null», но затем я понял, что реализация параметров делает это невозможным.
Есть ли простой способ обойти это?

Подробнее здесь: https://stackoverflow.com/questions/794 ... lect-query
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»