sql server中的RTF到文本
我的SQL2005表中有一个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
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//返回此字符串变量或将其分配给要以纯文本格式显示数据的控件