首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

因为查询无法同时更新聚集键和 text、ntext 或 image 列解决方案

2012-01-19 
因为查询无法同时更新聚集键和 text、ntext 或 image 列我的数据库有CREATETABLE[dbo].[NewsArticle]([Arti

因为查询无法同时更新聚集键和 text、ntext 或 image 列
我的数据库有
CREATE   TABLE   [dbo].[NewsArticle]   (
[ArticleID]   [uniqueidentifier]   NOT   NULL   ,
[Title]   [nvarchar]   (100)   COLLATE   Chinese_PRC_CI_AS   NOT   NULL   ,
[Content]   [ntext]   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[Keywords]   [nvarchar]   (255)   COLLATE   Chinese_PRC_CI_AS   NULL   ,
[CreatorID]   [uniqueidentifier]   NOT   NULL   ,
[CreateTime]   [datetime]   NOT   NULL   ,
)   ON   [PRIMARY]   TEXTIMAGE_ON   [PRIMARY]
GO

我产生一个强实体DataSet,但是这个数据适配器的Update语句中,

                        this._adapter.UpdateCommand.CommandText   =   "UPDATE   [dbo].[NewsArticle]   SET   [ArticleID]   =   @ArticleID,   [Title]   =   @Title,   [Content]   =   @Content,   [Keywords]   =   @Keywords,   [CreatorID]   =   @CreatorID,   [CreateTime]   =   @CreateTime   WHERE   (([ArticleID]   =   @Original_ArticleID)   AND   ([Title]   =   @Original_Title)     AND   ((@IsNull_Keywords   =   1   AND   [Keywords]   IS   NULL)   OR   ([Keywords]   =   @Original_Keywords))   AND   ([CreatorID]   =   @Original_CreatorID)   AND   ([CreateTime]   =   @Original_CreateTime)   ;
SELECT   ArticleID,   Title,   Content,   Keywords,   CreatorID,   CreateTime   FROM   NewsArticle   WHERE   (ArticleID   =   @ArticleID) ";


在调用时,会产生一个异常:
因为查询无法同时更新聚集键和   text、ntext   或   image   列。

但是这个语句又是自动生成的,我又不好改。
请问大家有什么好的解决方法。

[解决办法]
那手写 SQL 来分步更新吧
呵呵
[解决办法]
要不试试多写几句SQL
SQL 来分步更新
[解决办法]
你将聚焦索引取消试试看,还有这样的异常吗?
[解决办法]
"SET [ArticleID] = @ArticleID,... "把主键更新去掉就好了。
[解决办法]
含有类似无法在查询中看到的列最好的还是调用Adapter.UpdateDataSet

热点排行