在Vb.net中将Richtextbox转换为Access

在Vb.net中将Richtextbox转换为Access,vb.net,Vb.net,我正在尝试用vb 2008将richtextbox内容保存到Microsoft Access 我已经上传了一个rtf文件到richtextbox。现在richtextbox有了表格、段落 我尝试了richtextbox1.rtf,但当我保存时,得到的错误是 查询表达式“{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fn

我正在尝试用vb 2008将richtextbox内容保存到Microsoft Access

我已经上传了一个rtf文件到richtextbox。现在richtextbox有了表格、段落

我尝试了richtextbox1.rtf,但当我保存时,得到的错误是

查询表达式“{\rtf1\fbidis\ansi\ansicpg1252\deff0\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Calibri;}{\f1\fnil\fcharset0 Calibri;}}\viewkind4\uc1\pard\ltrpar\sa200\sl276\slmult1\f0\fs22爱沙尼亚的经济增长c”中的语法错误(缺少运算符)

任何建议

这是我的密码

    Dim cmd As New OleDbCommand
    Dim sSQL As String = String.Empty

    connection.Open()
    cmd.Connection = connection
    cmd.CommandType = CommandType.Text


    sSQL = "INSERT INTO assessment (a)"
    sSQL = sSQL & " values('" & t1.rtf & "')"
    cmd.CommandText = sSQL
    cmd.ExecuteNonQuery()

    MsgBox("Data has been saved")

您的rtf信息可能在某个地方包含一个引号,这会弄乱您的字符串,数据库引擎无法再找出文本是什么

您需要使用以下参数:

sSQL = "INSERT INTO assessment (a) values (@a)"

cmd.Parameters.AddWithValue("@a", t1.rtf)

顺便说一句,总是使用参数来避免SQL注入。有人可以编写类似的
”;在你的文本框中删除表评估
,猜猜看,你的表会神秘地消失。参数会保护你不受影响。

显示你的查询,并确保你使用参数。它工作正常,但又出现了一个问题,我的d在添加一条记录后,Database超过了40MB,因此我将rtf文件复制到我的文件夹中,并将新路径保存在db中。我们是否可以使用Crystal report中access的路径加载rtf文件。@Malluhitz这是另一个问题。单击顶部的“提问”链接,确保正确记录该问题。