如果我使用类似的东西
[ntext2] <> '1,032.5',
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
数据类型ntext和varchar在不等于运算符时不兼容.
最好的解决方案是,如果对任何列类型以相同的方式实现比较.(<>运算符适用于NVARCHAR和INT).
我在我的新社区页面中有PrivateMessage-System.
我有一个私人消息文本的多行文本框.我将这个文本保存在一个字符串中,这个字符串在一个ntext SQL-Coloumn中.我在字符串中从ntext SQL-Coloum中读取此文本,并在标签中显示它.
当我在多行文本框中使用"Enter"-Key进行5次换行时,换行符将在标签中消失.
我不知道他们在哪里迷路了,我做错了什么.任何的想法?
我需要将2个ntext列连接成一个.我无法将它们转换为nchar,因为它们都包含超过4000个字符的字符串.有没有办法在SQL Server 2005中执行此操作?
事先道歉,因为这不是一个问题,而是一个解决方案 - 但是需要大量的搜索才能找到答案并且谷歌没有多大帮助,所以我想通过提供错误来回馈社区.帮助未来googlers的解决方案.
使用LINQ to SQL时,我在向数据表提交更改(第二次)时遇到了问题.我第一次提交更改都没关系,第二次提交更改我收到了一个SQL异常,其中说:
"The text, ntext, and image data types cannot be compared or sorted,
except when using IS NULL or LIKE operator"
Run Code Online (Sandbox Code Playgroud)
当我调用SubmitChanges()时抛出了异常,但由于LINQ的延迟加载,当我调用Refresh(RefreshMode.KeepCurrentValues,myObject)时它实际上出现在上一行中.
我有以下型号:
public class Blog
{
public int BlogID { get; set; }
public int CategoryID { get; set; }
[MaxLength(70)]
[Required]
public string BlogTitle { get; set; }
[Column(TypeName="ntext")]
public string BlogContent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我已手动将字段设置为数据库中BlogContent
的ntext
类型(16字节)SQL CE4
.
但是,每次我尝试插入超过4000个字符的文本时,都会出现以下错误:
一个或多个实体的验证失败.有关详细信息,请参阅"EntityValidationErrors"属性
我试过设置注释[Column(TypeName="ntext")]
,但这没有区别.当我循环EntityValidationErrors
收集时,问题是由BlogContent
错误引起的:
字符串不能超过4000个字符
如何定义我的模型以获得ntext
字段BlogContent
?
似乎忽略了任何数据注释; 假设MaxLength
默认情况下,no的字符串限制为4000个字符.
我想看看MSGTEXT
表中重复多少次MMOUTBOUND
.为此,我使用以下查询:
SELECT
MSGTEXT,
COUNT(*) TotalCount
FROM MMOUTBOUND
GROUP BY MSGTEXT
HAVING COUNT(*)>1;
Run Code Online (Sandbox Code Playgroud)
但是我收到错误,因为ntext数据类型无法进行比较或排序.如何为ntext数据类型实现此目的?
我需要使用NHibernate 3.2中的代码映射映射来映射表的ntext列,这样它就不会被截断为4000个字符.
在以下示例中,我要更改哪些内容?"Notes"是在sql表中具有ntext类型的属性:
属性(emp => emp.Notes);
注意:请不要将它与流畅的NHibernate或hbm文件映射混合使用.
nhibernate truncate ntext nhibernate-mapping nhibernate-mapping-by-code
我有一个表格,其中包含NTEXT类型的字段,它存储了许多类型的值,其中包含文件大小.我正在尝试在记录列表上运行查询并添加文件大小,但我遇到了这个令人困惑的问题.
由于NTEXT不能直接/隐式转换为INT或BIGINT,我首先将其转换为VARCHAR然后我尝试将其转换为INT或BIGINT.一切顺利,直到我尝试将VARCHAR值转换为INT或BIGINT.
以下是我的查询和结果:
首先,我尝试以下操作,显示没有问题,输出为61069(值仍为ntext类型).
SELECT FileSize
FROM dbo.myTable
WHERE ID = 111
Run Code Online (Sandbox Code Playgroud)
现在我将其转换/转换为varchar,再次,没问题.输出是61069(现在是varchar类型).
SELECT CONVERT(VARCHAR, FileSize)
FROM dbo.myTable
WHERE ID = 111
Run Code Online (Sandbox Code Playgroud)
最后,我尝试将VARCHAR值转换为BIGINT,以便我可以执行我的SUM()和其他计算,但这次我得到一个" 将数据类型varchar转换为bigint错误. "消息.
SELECT CONVERT(BIGINT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111
Run Code Online (Sandbox Code Playgroud)
如果我尝试将其转换为INT,我会收到" 转换varchar值'7/1/2008 3:39:30 AM'转换为数据类型int "
SELECT CONVERT(INT, CONVERT(VARCHAR, FileSize))
FROM dbo.myTable
WHERE ID = 111
Run Code Online (Sandbox Code Playgroud)
我完全迷失了,任何可能导致这种情况的想法?
我有一个问题,我不知道如何解决它.
我在数据库中有一个简单的表
CREATE TABLE [dbo].[home] (
[Id] INT NOT NULL,
[text] NTEXT NOT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Run Code Online (Sandbox Code Playgroud)
我在visual studio 2012中使用FormView,FormView与数据库的Home表连接,并且有编辑/更新/删除选项.
问题是当我尝试更新te数据库中的文本时出现错误
The data types ntext and nvarchar are incompatible in the equal to operator.
Run Code Online (Sandbox Code Playgroud)
请帮帮忙..
这是我用来在DB中编写的代码:
<%@ Page Title="" Language="C#" MasterPageFile="~/admin/adminmaster.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="admin_Default" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:FormView ID="FormView1" runat="server" DataKeyNames="Id" DataSourceID="SqlDataSource1">
<EditItemTemplate>
text:
<asp:TextBox Text='<%# Bind("text") %>' runat="server" ID="textTextBox" /><br />
Id:
<asp:Label Text='<%# Eval("Id") %>' runat="server" ID="IdLabel1" /><br …
Run Code Online (Sandbox Code Playgroud) 我使用 SQL Server 数据库来存储很长的 Unicode 字符串。该字段来自类型“ntext”,理论上应限制为 2^30 个 Unicode 字符。
从MSDN 文档:
正文
可变长度 Unicode 数据,最大字符串长度为 2^30 - 1 (1,073,741,823) 字节。存储大小(以字节为单位)是输入的字符串长度的两倍。ntext 的 ISO 同义词是国家文本。
我做了这个测试:
生成 50,000 个字符的字符串。
运行更新 SQL 语句
UPDATE [table] SET Response='... 50,000 个字符串...' WHERE ID='593BCBC0-EC1E-4850-93B0-3A9A9EB83123'
检查结果 - 最后实际存储在字段中的内容。
结果是字段 [Response]仅包含43,679 个字符。字符串末尾的所有字符都被丢弃了。
为什么会发生这种情况?我该如何解决这个问题?
如果这真的是这种数据类型(ntext)的容量限制,还有哪一种数据类型可以存储更长的Unicode字符串?
ntext ×10
sql-server ×5
sql ×4
asp.net ×2
t-sql ×2
bigint ×1
c# ×1
code-first ×1
exception ×1
linq-to-sql ×1
nhibernate ×1
nvarchar ×1
sql-update ×1
string ×1
truncate ×1
varchar ×1