如何查询数据库中richtextbox存入的内容?

来源:百度知道 编辑:UC知道 时间:2024/06/15 00:56:11
我用VB的richtextbox把内容(RichTextBox1.TextRTF)存入数据库的image字段中,类型为备注。我

想把其中的含有“学生”的记录找出来,怎么办啊。用
rs.Open "select * from data where image like '%" & Text1.Text & "%'" , Conn, 1, 1
查不到了,但是如果存入数据库是RichTextBox1.Text就行了。
刚才我说得不太清楚。存入数据库时是RichTextBox1.TextRTF,
想把其中的含有“学生”的记录找出来。用
rs.Open "select * from data where image like '%学生%'" , Conn, 1, 1 不行

在RTF中汉字是以两个十六进制的字节形式表示的,比如“学生”两字就表示为
\'d1\'a7\'c9\'fa,其中十六进制的d1a7转换为10进制整型变量值为-11865,也就是“学”字的ascii码。因此要查询“学生”这两个字,需要先将“学生”一词字转换成\'d1\'a7\'c9\'fa这样的形式,给你个函数吧
Function StringToHex(sStr As String) As String
Dim sTemp As String
Dim sChar As String * 1
For i = 1 To Len(sStr)
sChar = Mid(sStr, i, 1) '依次取出原始字符串中每个字符
If Asc(sChar) < 128 And Asc(sChar) > 0 Then '如果是英文字母,数字或半角符号,不进行任何操作
sTemp = sTemp & sChar
Else '如果是其他字符,则转换为\'十六进制的形式
sTemp = sTemp & "\'" & Left(Hex(Asc(sChar)), 2) & "\'" & Right(Hex(Asc(sChar)), 2)
End If
Next
StringToHex = sTemp
End Function

另外,如果richtextbox中“学生”两个字在一起,但两个字的格式(字体、颜色)等,那么在RTF中这两个字就不在一起了,解决的办法可能只有在数据库中另行建立一个字段,用来保存纯文本的内容,查询时根据此字段来判断

Text1.Text和RichTextBox1.Text什么关系,貌似是个简单问题被