SQL Server Compact Edition ISNULL (sth, '') возвращает логическое значение? - PullRequest
5 голосов
/ 05 мая 2011

У меня есть таблица Accounts со столбцами name, password и email. Все они типа nvarchar. Я написал запрос как

SELECT name, password, ISNULL(email, 'eeee') 
FROM Accounts 
WHERE name = '" + textBox1.Text + "' AND password ='" + textBox2.Text + "'"

Я прочитал письмо как reader.getString(2), так как оно nvarchar.

Как я читал из интернета, если email НЕДЕЙСТВИТЕЛЕН, тогда он должен вернуть eeee. Но он говорит, что System.boolean не может быть переведено на System.String.

Как я могу это исправить? Почему он возвращает логическое значение?

1 Ответ

15 голосов
/ 05 мая 2011

Согласно этому это ISNULL не реализовано в SQL Server CE. Однако я ожидаю увидеть синтаксическую ошибку.

Обходной путь: вы можете использовать CASE WHEN email IS NULL THEN 'eeee' ELSE email END или COALESCE. Предпочтительно последний.

Также используйте параметризованные запросы. Если ты не знаешь, почему должен, учись.

...