【发布时间】:2018-11-28 14:28:38
【问题描述】:
我已经成功地使用以下代码将数据从 ODBC 连接加载到 C# DataTable 一段时间没有问题:
public static DataTable ExecuteSqlSelect(string sql, string connectionString)
{
var result = new DataTable();
using (var connection = new OdbcConnection(connectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText = sql;
var dbReader = command.ExecuteReader();
result.Load(dbReader);
connection.Close();
}
return result;
}
但是,我现在有一个 MySql 表,其中有一列类型为 JSON。当我尝试使用该方法从该表加载数据时,出现以下错误:
Unknown SQL type - 0.
我认为这是因为 C# 的 DataTable 无法识别 JSON 类型。它是否正确?更重要的是:是否有解决方案/解决方法?
编辑:正如评论者所建议的那样,我 不 试图将 JSON 字符串转换为 DataTable... 我正在尝试加载包含 列的 SQL 表MySQL 将“JSON” 输入到数据表中。我不需要 JSON 解析,只要将原始 JSON 字符串放入 DataTable 就可以了。
编辑 2:MySql 和 ODBC 连接器都是最新版本:8.0.11
【问题讨论】:
-
您的代码是否受到此错误的影响:bugs.mysql.com/bug.php?id=12514
-
@MoStar 不是重复的,我已经编辑了问题以更好地解释它
-
您应该提供您正在使用的 MySQL 数据库和 MySQL 连接器/ODBC 的版本。您是否也会在您的问题中添加此信息?
-
我的建议来自此链接:forums.mysql.com/read.php?37,650722,651027#msg-651027 - 我在Release Notes 中找不到对 JSON 数据类型的任何引用。我不知道是否可以修改查询以将列转换为 char/varchar - 如果是这样,这可能是您的解决方法。