gpt4 book ai didi

c# - 在 C# 中将数据加载到 DataTable 会出现 "Unknown SQL type - 0"错误

转载 作者:行者123 更新时间:2023-12-01 00:35:50 25 4
gpt4 key购买 nike

我已经成功地使用以下代码将数据从 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 在 DataTable 中输入“JSON”。我不需要 JSON 解析,如果我只是将原始 JSON 字符串放入 DataTable 中就可以了。

编辑 2:MySql 和 ODBC 连接器都是最新版本:8.0.11

最佳答案

多亏了 PaulF 在评论中的建议,我才得以解决这个问题。由于 ODBC 驱动程序不正确支持 JSON,您必须直接在查询中将列转换为文本。所以如果之前我有:

SELECT col1, col2, jsonCol FROM table;

我将其替换为:

SELECT col1, col2, CAST(jsonCol as CHAR(256)) as jsonCol FROM table;

这会将列转换为普通文本,然后将其正确加载到 DataTable 中。

关于c# - 在 C# 中将数据加载到 DataTable 会出现 "Unknown SQL type - 0"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50931551/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com