Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 参数数据类型文本对于lower函数的参数1无效_C#_Sql_Sql Server_Lambda - Fatal编程技术网

C# 参数数据类型文本对于lower函数的参数1无效

C# 参数数据类型文本对于lower函数的参数1无效,c#,sql,sql-server,lambda,C#,Sql,Sql Server,Lambda,在我的应用程序的搜索函数中,我实现了一个搜索函数,它对数据库执行以下语句 resultsquery = db.DBMovies.Where(m => (m.Actors.ToLower()).Contains(q.ToLower())) 在部分q.ToLower()中,我读取了url参数q,并将其转换为小写,然后在相关的数据库列中找到它。在我的数据库中,“Actors”列的类型是“text”,而不是varchar。当我运行我的应用程序时,我得到一个名为的异常,参数数据类型text对于低级

在我的应用程序的搜索函数中,我实现了一个搜索函数,它对数据库执行以下语句

resultsquery = db.DBMovies.Where(m => (m.Actors.ToLower()).Contains(q.ToLower()))
在部分
q.ToLower()
中,我读取了url参数
q
,并将其转换为小写,然后在相关的数据库列中找到它。在我的数据库中,“Actors”列的类型是“text”,而不是varchar。当我运行我的应用程序时,我得到一个名为
的异常,参数数据类型text对于低级函数的参数1无效。有什么办法可以避免这个例外吗?我更喜欢一种方法,我可以解决它在一行


谢谢。

只需将数据库中列的数据类型更改为
NVARCHAR(MAX)
,您的代码就可以正常工作了。这是一个已知的问题,如果你用谷歌搜索的话。例如,请看一看。

您可以简单地将列转换为VARCHAR,如下所示:

ALTER TABLE DBMovies
ALTER COLUMN Actors VARCHAR(MAX)

文本是非常大的文本的sql数据类型,最多可容纳2GB;我真诚地怀疑你们会需要那个作为“电影”表的演员栏;如果不合理,您确实应该使用nvarchar(一些合理的限制)或nvarchar(最大值)-签出文本和ntext字段用于非常大的文本数据。您应该使用varchar字段。对varchar字段执行这样的查询比对文本字段更容易。有关更多信息,请参阅:检查这是否可以帮助您@OndrejSvejdar您是对的!但有没有一种方法可以在不改变数据库的情况下解决这个问题呢?谢谢你的回答。这对我也很有用。如果OP将此标记为最佳答案,将对其他人有所帮助。如果您无法更改数据类型,请使用
convert(varchar(max),myValue)
。谢谢您的回答!