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

时间:2010-05-03 23:35:31

标签: sql

为什么我收到此错误:

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

这是我的理解:

<%@ 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>

1 个答案:

答案 0 :(得分:5)

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

无论是谁创建了“text”类型的用户名字段,都不知道他们在做什么,它会引起各种限制性问题,直到你可以将其更改为更合理的东西。