MDB 表列使用 Unicode 失败?

发布于 2025-01-04 19:30:42 字数 696 浏览 0 评论 0原文

我正在制作一个 OleDb.OleDbDataAdaptor 对象来填充 DataTable 对象。在 OleDbDataAdaptor 的构造中,我像这样初始化它:

Dim adapter As New OleDb.OleDbDataAdapter(sql, myConnection)

其中 sql 是我的查询字符串,如下所示:

Dim sql = "SELECT * FROM DBTable TC WHERE TC.Text=N'Criteria'"

我使用前面的大写 N,因为表“DBTable”中的字段“Text”应该采用 unicode。 myConnection 代表与我的 mdb 文件之一的连接,其中定义了 DBTable。

但是,当我执行 Adaptor.Fill(myDataTable) 时,它失败并引发异常:查询表达式“TC.Text=N'Criteria”中存在语法错误(缺少运算符)。有谁知道这里发生了什么?我了解到为了处理 unicode 文本,N 是必要的。另一个问题是,如何确保mdb文件中的字段确实是unicode的?因为我只能看到字段数据类型是“文本”并且我使用的是Access 2003,所以我只能假设它是unicode的。事实上,我正在为该字段启用 unicode 压缩,正如您在文本“Criteria”中看到的那样,其中无论如何都没有特殊字符。

感谢您的帮助!

I am making an OleDb.OleDbDataAdaptor object to fill a DataTable object. In the construction of OleDbDataAdaptor, I initialize it like this:

Dim adapter As New OleDb.OleDbDataAdapter(sql, myConnection)

where sql is the my query string like this:

Dim sql = "SELECT * FROM DBTable TC WHERE TC.Text=N'Criteria'"

I am using the preceding capital N because the field "Text" in table "DBTable" is supposed to be in unicode.
And myConnection represents a connection to one of my mdb files, where the DBTable is defined.

However, when I execute the adaptor.Fill(myDataTable), it fails and throws an exception: Syntax error (missing operator) in query expression 'TC.Text=N'Criteria''. Does anyone know what happened here? I learned that in order to proceed the unicode text, the N is necessary. Another question is, how can I make sure that the field in mdb file is indeed in unicode? Because I can only see that the field Data Type is "Text" and I am using Access 2003, so I can only assume that it is in unicode. In fact I am enabling the unicode compression for the field, and as you can see in the text "Criteria" where is no special characters anyway.

Thanks for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

屋顶上的小猫咪 2025-01-11 19:30:42

根据@Remou的回复,事实证明,对于Access数据库,对于unicode文本,前面的大写N不是必需的。仅 SQL Server DB 需要 N

Based on @Remou response, it turns out that for Access database, the precede capital N is not necessary for unicode text. The N is only needed for SQL Server DB

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文