参数数据类型ntext对于upper函数的参数1无效;尝试向过滤器添加第三项时

本文关键字:参数 添加 过滤器 三项 upper 对于 ntext 数据类型 函数 无效 | 更新日期: 2023-09-27 18:03:43

我一直在遵循Contoso大学的ASP教程。网的网站。我正在努力扩展我的技能,因此决定尝试在过滤器中添加第三个选项。本教程提供:

if (!String.IsNullOrEmpty(searchString))
{
    students = students.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
                           || s.FirstMidName.ToUpper().Contains(searchString.ToUpper()));
}

假设我有一个名为昵称的第三列。我尝试通过添加额外的||运算符:

将此添加到过滤器中。
if (!String.IsNullOrEmpty(searchString))
{
    students = students.Where(s => s.LastName.ToUpper().Contains(searchString.ToUpper())
                           || s.FirstMidName.ToUpper().Contains(searchString.ToUpper())
                           || s.Nickname.ToUpper().Contains(searchString.ToUpper()));
}

当我添加第三个选项时,我得到:

[SqlException (0x80131904): Argument data type ntext is invalid for argument 1 of upper function.]

我在这里错过了什么?接下来我需要学些什么来帮助我更好地理解这里发生的事情?

参数数据类型ntext对于upper函数的参数1无效;尝试向过滤器添加第三项时

我记得在使用实体框架之前有过NTEXT列的问题。为了解决这个问题,我现在只使用NVARCHAR(MAX)。我不确定这对你的情况是否有帮助。无论您是否能够更改数据库类型……否则,这里有进一步的信息:

Linq to Entities:在NText字段上使用ToLower()

试试下面的链接。

http://johnnblade.wordpress.com/2011/01/03/sql-query-replace-error-argument-data-type-ntext-is-invalid-for-argument-1-of-replace-function/

您必须将当前文本/ntext值强制转换为nvarchar(max)。