SQL Query 中的“等于运算符中的数据类型 text 和 nvarchar 不兼容”

Posted

技术标签:

【中文标题】SQL Query 中的“等于运算符中的数据类型 text 和 nvarchar 不兼容”【英文标题】:"The data types text and nvarchar are incompatible in the equal to operator" in SQL Query 【发布时间】:2010-05-03 23:35:30 【问题描述】:

为什么会出现这个错误:

数据类型 text 和 nvarchar 在等于运算符中不兼容。 数据库中“用户名”字段为文本类型...

这是我的来源:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="my_answers.ascx.cs" Inherits="kontrole_login_my_answers" %>

<div style=" margin-top:-1280px; float:left;">       

<p></p>


                              <div id="question">
Add question





</div>
</div>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" 

   >

</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:estudent_piooConnectionString %>" 
    SelectCommand="SELECT * FROM [question] WHERE ([username] = @fafa)">
    <SelectParameters>
        <asp:QueryStringParameter Name="fafa" QueryStringField="user" 
            Type="String"/>
    </SelectParameters>
</asp:SqlDataSource>

【问题讨论】:

错误信息告诉你到底出了什么问题。查看数据库中列的类型。 请参考:***.com/questions/54334/… 【参考方案1】:

"text" 用于非常大的文本字段,在 SQL Server 的现代版本中甚至不应该使用(由 varchar/nvarchar(max) 代替)在 SQL Server 中使用文本(和图像)列类型,你有您可以实际使用的一小部分操作。

创建“文本”类型的用户名字段的人不知道他们在做什么,这会给您带来各种限制问题,直到您可以将其更改为更合理的内容。

【讨论】:

以上是关于SQL Query 中的“等于运算符中的数据类型 text 和 nvarchar 不兼容”的主要内容,如果未能解决你的问题,请参考以下文章

sql query.sql中的最大日期戳

sql SQL Query更改where子句中的排序规则。

sql SQL Query替换数据库中的wp_posts内容

将列表绑定到 Pandas read_sql_query 中的参数与其他参数

我们可以在 Laravel 迁移中的单个 DB::statement("Query 1; Query 2") 中使用多个 SQL 查询吗?

过滤掉 SQL Query 中的重复行