Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用文本而不是RTF在数据库字段中存储彩色文本?_C#_Sql Server_Winforms_Colors_Rtf - Fatal编程技术网

C# 如何使用文本而不是RTF在数据库字段中存储彩色文本?

C# 如何使用文本而不是RTF在数据库字段中存储彩色文本?,c#,sql-server,winforms,colors,rtf,C#,Sql Server,Winforms,Colors,Rtf,我在Windows窗体应用程序中有一个richtextbox控件,在连接到它的数据库表中有一个VarChar字段。我只需要给这个richtextbox中的一些单词上色。当我将richtextbox控件的Text属性保存到数据库时,它只保存不带颜色的文本,因此我必须保存richtextbox控件的Rtf属性。不幸的是,这会导致一个问题,因为当我从SQL Server Management Studio或任何其他方式查询我的表时,它会显示RTF特殊字符,如以下示例: {\rtf1\fbidis\an

我在Windows窗体应用程序中有一个richtextbox控件,在连接到它的数据库表中有一个VarChar字段。我只需要给这个richtextbox中的一些单词上色。当我将richtextbox控件的
Text
属性保存到数据库时,它只保存不带颜色的文本,因此我必须保存richtextbox控件的
Rtf
属性。不幸的是,这会导致一个问题,因为当我从SQL Server Management Studio或任何其他方式查询我的表时,它会显示RTF特殊字符,如以下示例:

{\rtf1\fbidis\ansi\ansicpg1256\deff0\deflang3073{\fonttbl{\f0\fnil\fcharset178 Microsoft无衬线;}{\f1\fnil\fcharset0 Microsoft无衬线;}}

当然,由于RTF字符,这会阻止我正确地搜索或排序数据

问题:

1-是否最好将重要数据以RTF格式保存在数据库中,如果安全可靠,如何在不将其导入richtextbox的情况下操作数据库中的文本

2-我唯一需要的RTF选项是带背景色的彩色文本。我只需要用4种颜色(红色、绿色、黄色和蓝色)给文本上色以及将某些文本的背景色设置为黑色。是否有方法使用richtextbox控件的
text
属性并使用该属性保存颜色属性?例如,在需要着色的每个单词之前编写颜色代码,如“/R/表示红色文本/R/”和“/G/表示绿色文本/G/”


我是在考虑这个问题,还是坚持使用RTF?

颜色之类的东西是一个演示角色,所以它不应该在ddbb中用于常规文本。在这种情况下,它更像是一个带有格式的文档,RTF似乎是合适的


如果您需要对该文本进行查询,您可以将该文本以纯文本形式存储在另一列中,而无需格式化。

根据您的设计,Oscar的解决方案很好,您可以保留原始颜色格式并查询纯文本。但它看起来会增加存储大小。您需要使用两列来存储相同的数据格式不同

而您自己的解决方案是,在文本中放置一个颜色代码是好的,但是您需要在显示(从颜色代码格式更改为RTF)和保存(从RTF更改为颜色代码格式)之前进行更多的处理


你还需要考虑一下,如果你以后需要更多的格式化,比如:更多的颜色,甚至需要像粗体、斜体那样存储样式。如果发生这种情况,如果使用奥斯卡的方法,你不需要改变代码,但是如果你使用了你的色码方法,你就需要改变代码。如果表的数量超过100个,并且RTFWell中存储了大量注释,那么如果大小有问题,并且您使用的是SQL Server 2008或更高版本,您可以将文本存储在数据库中进行搜索,并将文档作为文件系统中的文件表存储。如果我只使用表中的一个字段来存储文本,不是更好吗wn标记仅用于2种颜色?我只想知道如何做好,我确信我将来不需要更多的格式,搜索过程将相当困难,因为我将在文本字段中搜索,并在RTF字段中显示突出显示的结果。那么有没有一种好方法可以在文本中放置颜色代码?因为我仍然不知道如何做看看你为什么说搜索过程很难。在文本中搜索并显示RTF不是问题。例如:从表格中选择Id,RTF,其中的文本类似于“搜索条件”。不,我的意思是搜索RTF内容中的单词