выберите значение NULL из базы данных sql server - PullRequest
0 голосов
/ 31 мая 2011

У меня проблема с оператором выбора.

Это выглядит так:

myda = new SqlDataAdapter("Select * FROM tblAgenda WHERE tAgUsrId ='" + Session["usrId"] + "' AND tAgTBD = '" + Session["username"] + "' OR tAgTBD = '" + DBNull.Value + "' ", myconn);

Но я понятия не имею, как заставить работать этот DBNull.Value. Я также попытался просто использовать вместо "", но это также не работает.

Есть идеи, как переписать это утверждение, пожалуйста? Спасибо.

1 Ответ

1 голос
/ 31 мая 2011

Предполагая, что значения вашего сеанса уже санированы, вы можете сделать следующее:

myda = new SqlDataAdapter("Select * FROM tblAgenda WHERE tAgUsrId ='" +
    Session["usrId"] + "' AND tAgTBD = '" +
    Session["username"] + "' OR tAgTBD is null", myconn);

Выше предполагается, что вы хотите, чтобы все строки, где tAgTBD были нулевыми. Если вы хотите сохранить ограничение для идентификатора пользователя, добавьте скобки вокруг двух условий ORed:

myda = new SqlDataAdapter("Select * FROM tblAgenda WHERE tAgUsrId ='" +
    Session["usrId"] + "' AND (tAgTBD = '" +
    Session["username"] + "' OR tAgTBD is null)", myconn);

Если значения сеанса не были обработаны, вам нужно прочитать SQL-инъекцию и посмотреть на использование SqlCommand с параметрами вместо построения строки; хотя вы можете предпочесть пойти по этому пути в любом случае - это лучшая привычка для приобретения в долгосрочной перспективе, и тогда вам не нужно думать, были ли значения продезинфицированы.

...