以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  往数据库字段存入RichTextBoxr的rtf时出错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71060)

--  作者:lzzhx
--  发布时间:2015/7/3 22:24:00
--  往数据库字段存入RichTextBoxr的rtf时出错
请教老师:
     我用RichTextBoxr控件,在将控件的rtf存入数据库表时出错,信息如下:

代码:
cmd.CommandText = "Insert Into {内部通讯} ([发送者ID],[接收者ID],[发送时间],[内容],[文件]) Values (\'"
cmd.CommandText = cmd.CommandText & _UserID & "\',\'"& xzyhbh & "\',#" & Date.Now & "#,\'" & ct1.RTF & "\',\'" & filename & "\')"

出错信息:
            语法错误 (操作符丢失) 在查询表达式 \'\'[\\rtf1\\ansi\\ansicpg936\\deff0\\deflang1033\\deflangfe2052[\\fonttbl[\\f0\\fnil\\fcharset134 \\\'cb\\\'ce\\\'cc\\\'e5;]]
[\\colortbl ;\\red255\\green0\\blue0;]
\\viewkind4\\uc1\\pard\\cf1\\lang2052\\f0\\fs18 1414\\par
]
\'\' 中。

请老师看看是什么问题,是不是  ct1.RTF  还需要进行什么操作才能使用?

[此贴子已经被作者于2015/7/3 22:33:43编辑过]

--  作者:lzzhx
--  发布时间:2015/7/3 22:33:00
--  
不好意思,前面多打了一个jf

往数据库字段存入RichTextBoxr的rtf 时出错
  发帖心情 Post By:2015/7/3 22:24:00 [只看该作者

请教老师:
     我用RichTextBoxr控件,在将控件的rtf存入数据库表时出错,信息如下:

代码:
cmd.CommandText = "Insert Into {内部通讯} ([发送者ID],[接收者ID],[发送时间],[内容],[文件]) Values (\'"
cmd.CommandText = cmd.CommandText & _UserID & "\',\'"& xzyhbh & "\',#" & Date.Now & "#,\'" & ct1.RTF & "\',\'" & filename & "\')"

出错信息:
            语法错误 (操作符丢失) 在查询表达式 \'\'[\\rtf1\\ansi\\ansicpg936\\deff0\\deflang1033\\deflangfe2052[\\fonttbl[\\f0\\fnil\\fcharset134 \\\'cb\\\'ce\\\'cc\\\'e5;]]
[\\colortbl ;\\red255\\green0\\blue0;]
\\viewkind4\\uc1\\pard\\cf1\\lang2052\\f0\\fs18 1414\\par
]
\'\' 中。

请老师看看是什么问题,是不是  ct1.RTF  还需要进行什么操作才能使用?

--  作者:狐狸爸爸
--  发布时间:2015/7/4 9:07:00
--  
你还是用foxtbale自己的写入和保存去处理吧.

方法一,作为字符列
http://www.foxtable.com/help/topics/2898.htm

方法二,作为二进制列:
http://www.foxtable.com/help/topics/2950.htm



--  作者:lzzhx
--  发布时间:2015/7/4 22:58:00
--  
你还是用foxtbale自己的写入和保存去处理吧.

方法一,作为字符列
http://www.foxtable.com/help/topics/2898.htm

方法二,作为二进制列:
http://www.foxtable.com/help/topics/2950.htm

用第二种方法试了一下,还是不成功。
ct.rtf = dr.SQLGetValue("内容")     这句代码还是不会写

错误信息:从类型“Byte()”到类型“String”的转换无效。

请老师说说,将表中二进制列“内容”的值读出来后,如何显示在 richtextbox中 ?

--  作者:大红袍
--  发布时间:2015/7/5 9:21:00
--  

 试试这样,不行就上传例子,或者可测试的代码。

 

cmd.CommandText = cmd.CommandText & _UserID & "\',\'"& xzyhbh & "\',#" & Date.Now & "#,\'" & ct1.RTF.replace("\'", "\'\'") & "\',\'" & filename & "\')"


--  作者:狐狸爸爸
--  发布时间:2015/7/5 9:31:00
--  

 ct.rtf = dr.SQLGetValue("内容")

 

既然使用SqlGetValue,就不要设置为二进制列,设置为字符列。


--  作者:lzzhx
--  发布时间:2015/7/5 15:17:00
--  
大红袍老师:
代码:
cmd.CommandText = "Insert Into {内部通讯} ([发送者ID],[接收者ID],[发送时间],[内容],[文件]) Values (\'"
cmd.CommandText = cmd.CommandText & _UserID & "\',\'"& xzyhbh & "\',#" & Date.Now & "#,\'" & ct1.RTF & "\',\'" & filename & "\')"

出错信息:
            语法错误 (操作符丢失) 在查询表达式 \'\'[\\rtf1\\ansi\\ansicpg936\\deff0\\deflang1033\\deflangfe2052[\\fonttbl[\\f0\\fnil\\fcharset134 \\\'cb\\\'ce\\\'cc\\\'e5;]]
[\\colortbl ;\\red255\\green0\\blue0;]
\\viewkind4\\uc1\\pard\\cf1\\lang2052\\f0\\fs18 1414\\par
]
\'\' 中。

改为  cmd.CommandText = cmd.CommandText & _UserID & "\',\'"& xzyhbh & "\',#" & Date.Now & "#,\'" & ct1.RTF.replace("\'", "\'\'") & "\',\'" & filename & "\')"  
后,可以存储了,不再弹出错误信息,谢谢老师了。

但是读的时候,用  ct.text = dr.SQLGetValue("内容")    代码,读出的是字符串,并不是格式文本

用   ct.rtf = dr.SQLGetValue("内容")   代码,提示   “文件格式无效。”

 

*****  按照  狐狸爸爸  既然使用SqlGetValue,就不要设置为二进制列,设置为字符列。   的说法,我将字段改为备注型(格式文本)



--  作者:大红袍
--  发布时间:2015/7/5 15:21:00
--  

 保存时候,看内容是什么 msgbox(ct1.RTF)

 

 取出时候,msgbox(dr.SQLGetValue("内容")) 看内容是什么


--  作者:lzzhx
--  发布时间:2015/7/5 15:23:00
--  
我试了两次,一次是一张图片,另一次是粘贴了excel的部分表,结果都一样
--  作者:lzzhx
--  发布时间:2015/7/5 15:24:00
--  

保存时候,看内容是什么 msgbox(ct1.RTF)

 

 取出时候,msgbox(dr.SQLGetValue("内容")) 看内容是什么


我先试一下,再回复