sql server中的RTF到文本

sql server中的RTF到文本,sql,sql-server-2005,Sql,Sql Server 2005,我的SQL2005表中有一个RTF字段,我需要将其转换为文本并显示它。 经过快速研究,我得到了以下方法 create function dbo.RTF2TXT(@in varchar(8000)) RETURNS varchar(8000) AS BEGIN DECLARE @object int DECLARE @hr int DECLARE @out varchar(8000) -- Create an object that points to the SQL Server EXE

我的SQL2005表中有一个RTF字段,我需要将其转换为文本并显示它。 经过快速研究,我得到了以下方法

create function dbo.RTF2TXT(@in varchar(8000)) RETURNS  varchar(8000) AS 
BEGIN

DECLARE @object int
DECLARE @hr int
DECLARE @out varchar(8000)

-- Create an object that points to the SQL Server
EXEC @hr = sp_OACreate 'RICHTEXT.RichtextCtrl', @object OUT
EXEC @hr = sp_OASetProperty @object, 'TextRTF', @in
EXEC @hr = sp_OAGetProperty @object, 'Text', @out OUT
EXEC @hr = sp_OADestroy @object
return @out

END
GO

select dbo.RTF2TXT('{\rtf1\ansi\ansicpg1252\uc1 aaa}')
但在这里我得到的结果是空的。。。
可能是什么问题,请建议这看起来像是使用CLR创建RichTextBox控件

你查过了吗

  • RichText OCX驻留在SQL Server上
  • CLR已启用
  • OLE已启用(IIRC这是通过表面积工具实现的)
有一个线程使用的代码非常相似,如果不是相同的话


或者,当您需要SSRS时,有一篇很好的文章解释了如何通过SSRS将RTF转换为文本。

我也有同样的要求,但我不希望在SQL Server中使用任何richtext控件dll或CLR。我通过在我的服务/数据库层项目中引用System.Windows.Form.dll来做同样的事情。在.cs文件顶部导入该库,我们在该文件中导入/使用该类所需的库,并执行以下代码。这真的解决了我的问题。你也可以试试这个,如果你遇到任何问题,请告诉我

在SQL Server中将RTF转换为不带RichTextControl ocx/dll或CLR的文本的步骤

1) 在项目中添加对System.Windows.Forms.dll的引用(最好在ServiceLayer/数据库层/域模型层/业务逻辑层中添加此引用)

2) 在类文件中导入/使用它,我们在类的顶部导入/使用所需的命名空间

VB.Net --> Import Systems.Windows.Forms
C#.Net --> using System.Windows.Forms;
3) 在下面的代码中添加要将RTF转换为纯文本的代码

 System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();
 rtBox.Rtf = actionNotes.Notes; // <your database table's RTF field data assigned to rtBox's Rtf property>
 string s = rtBox.Text; //This will convert your assigned RTF Field data in Plain Text

 return s;   //Return this string variable or assign it to the control where you want to display your data in Plain Text format
System.Windows.Forms.RichTextBox rtBox=new System.Windows.Forms.RichTextBox();
rtBox.Rtf=actionNotes.Notes;//
字符串s=rtBox.Text//这将以纯文本形式转换指定的RTF字段数据
返回s//返回此字符串变量或将其分配给要以纯文本格式显示数据的控件