【问题标题】:Richtextbox into Access in Vb.netRichtextbox 进入 Vb.net 中的 Access
【发布时间】:2014-08-26 13:32:56
【问题描述】:

我正在尝试在 vb 2008 中将富文本框内容保存到 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 爱沙尼亚\rquote s经济增长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")

【问题讨论】:

  • 显示您的查询,并确保使用参数。

标签: vb.net


【解决方案1】:

您的 rtf 信息可能在某处包含一个单引号,这会弄乱您的字符串,并且数据库引擎无法再判断文本是什么。

你需要使用参数:

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

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

顺便说一句,总是使用参数来避免 SQL 注入。有人可以在你的文本框中写下';DROP TABLE assessment 之类的东西,你猜怎么着,你的桌子会神秘地消失。参数可以保护您免受这种影响。

【讨论】:

  • 它工作得很好,但是又出现了一个问题,我的数据库在添加一条记录后跨越了 40MB,所以我将 rtf 文件复制到我的文件夹并在 db 中保存了新路径。有什么方法可以使用 Crystal 报表中的访问路径加载 rtf 文件。
  • @Malluhitzz 这是一个不同的问题。点击顶部的链接并确保正确记录问题。
猜你喜欢
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 2013-05-01
相关资源
最近更新 更多