ADO.NET 通过updatetext 如何更新 ntext字段?困扰我两周了!

问题描述

现有数据库是基于SQLSERVER2000创建的,其中一张表有个字段是ntext类型,现在需要把二进制文件更新到此字段,我按照MSDN的方法,代码如下:intBUFFER_LENGTH=10240;stringstrConnection="server=localhost;database=test;uid=sa;pwd=123456";SqlConnectionobjConnection=newSqlConnection(strConnection);objConnection.Open();SqlCommandcmdGetPointer=newSqlCommand("SETNOCOUNTON;UPDATEt_SaleActionEntrySETFContent_Tag=''WHEREFEntryID=4;"+"SELECT@Pointer=TEXTPTR(FContent_Tag)FROMt_SaleActionEntryWHEREFEntryID=4",objConnection);SqlParameterpointerOutParam=cmdGetPointer.Parameters.Add("@Pointer",SqlDbType.Binary,16);pointerOutParam.Direction=ParameterDirection.Output;cmdGetPointer.ExecuteNonQuery();SqlCommandcmdUpdateBinary=newSqlCommand("UPDATETEXTt_SaleActionEntry.FContent_Tag@Pointer@Offset@Delete@Bytes",objConnection);SqlParameterpointerParam=cmdUpdateBinary.Parameters.Add("@Pointer",SqlDbType.Binary,16);SqlParameteroffsetParam=cmdUpdateBinary.Parameters.Add("@Offset",SqlDbType.Int);SqlParameterdeleteParam=cmdUpdateBinary.Parameters.Add("@Delete",SqlDbType.Int);deleteParam.Value=0;SqlParameterbytesParam=cmdUpdateBinary.Parameters.Add("@Bytes",SqlDbType.Binary,BUFFER_LENGTH);FileStreamfiles=newFileStream("c:\test.bat",FileMode.Open);BinaryReaderbr=newBinaryReader(files);intoffset=0;offsetParam.Value=offset;byte[]buffer=br.ReadBytes(BUFFER_LENGTH);while(buffer.Length>0){pointerParam.Value=pointerOutParam.Value;bytesParam.Value=buffer;cmdUpdateBinary.ExecuteNonQuery();deleteParam.Value=0;offset+=BUFFER_LENGTH;offsetParam.Value=offset;buffer=br.ReadBytes(BUFFER_LENGTH);}br.Close();files.Close();执行一下就是报:“不能将数据类型varbinary(max)转换为ntext”错误因为更新字段为ntext,而@Bytes是一个Binary类型,执行确实会报错。但我的需求就是要把二进制流写入NTEXT字段,能不能实现呢?

解决方案

解决方案二:
可以,writetext
解决方案三:
引用1楼jimil的回复:

可以,writetext

我现在用的updatetext,能不能详细介绍一下?

时间: 2024-09-28 00:51:39

ADO.NET 通过updatetext 如何更新 ntext字段?困扰我两周了!的相关文章

sqlserver 中ntext字段的批量替换(updatetext的用法)

一.问题描述: 1.在Sql Server 中,ntext/text/image 字段不允许应用replace函数替换内容: 2.通过convert字段转换,可以把ntext字段转换为varchar(8000),然后用Relpace函数替换,不过,此方法,对于字段长度大于8000的ntext字段无效. 二.问题解决 整理通用存储过程,代码如下: 复制代码 代码如下: CREATE procedure [dbo].[Proc_UpdateNTextField] @TargetTable nvarc

模拟字符串处理函数 stuff 处理 Ntext 字段

函数|字符串 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_stuff]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_stuff]GO /*--Ntext字段处理  模拟字符串处理函数 stuff 完成表中 ntext 字段的 stuff 处理 注意,表中需要有列名为:id 的主键(或标识字段),数据类型为

模拟字符串处理函数 stuff 的存储过程,对 ntext 字段进行stuff .

存储过程|函数|字符串 if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_stuff]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_stuff]GO /*--Ntext字段处理 模拟字符串处理函数 stuff完成表中 ntext 字段的 stuff 处理注意,表中需要有列名为:id 的主键(或标识字段),数据类

pymssql ntext字段调用问题解决方法_python

下面是调用方式: Example script - pymssql module (DB API 2.0) Example script - _mssql module (lower level DB access) 不过,在我使用过程中,发现,如果表中包含了ntext字段,就会出错,提示 不能用 DB-Library(如 ISQL)或 ODBC 3.7 或更早版本将 ntext 数据或仅使用 Unicode排序规则的 Unicode 数据发送到客户端. 查了一下,发现官方网站有解释: Q: W

sql TEXT、NTEXT字段拆分的问题

  sql TEXT.NTEXT字段拆分的问题 SET NOCOUNT ONCREATE TABLE #T (C NTEXT)GOINSERT INTO #T VALUES('')GOCREATE TABLE #T2 (C CHAR(8))GO DECLARE @S1 VARCHAR(8000),@S2 VARCHAR(8000),@I INTSET @S1=''SET @S2=''SET @I=1WHILE @I<=1000BEGIN   SET @S1=@S1+'A'+RIGHT('0000

批量替换ntext字段内容,@textA为要替换的字符串,@textB为替换后的字符串

代码 --批量替换ntext字段内容,@textA为要替换的字符串,@textB为替换后的字符串--exec P_replace_TableNTEXT 'B_Goods','G_Content','GID','61.152.93.172:888','212.95.33.47'create proc P_replace_TableNTEXT(@tableName varchar(50),@ColNTEXT varchar(50),@ColPrimaryKey varchar(50),@textA

Ntext字段拆分处理

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_split]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[p_split]GO /*--Ntext字段拆分处理  按指定的分隔符,将 ntext 字段拆分成多条记录 注意:处理过程固定以名为id的int型字段为主键 如果不满足这个条件,则要对应的修改存储过程 --邹

mysql如何更新数据库字段教程

  mysql如何更新数据库字段教程 语法 UPDATE table_name SET column_name = new_value WHERE column_name = some_value 注释:SQL 对大小写不敏感.UPDATE 与 update 等效. 为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数.该函数用于向 SQL 连接发送查询和命令. 例子 稍早时,我们在本教程中创建了一个名为 "Person" 的表.它看起来类似这样: FirstN

utf-8-mysql 找错 ,能够更新其他字段,只有describe更新失败

问题描述 mysql 找错 ,能够更新其他字段,只有describe更新失败 错误信息 mysql> update t_project_type set describe='aaa' where id='2'; 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de