You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在C#项目中从PostgreSQL检索Ruby on Rails存储的数组

读取PostgreSQL中的二维字符串数组(C# + Npgsql)

嘿,我来帮你搞定这个问题!你在Ruby on Rails里存到PostgreSQL的二维字符串数组,用Npgsql在C#里其实很好读取——因为Npgsql原生支持PostgreSQL的数组类型,不用自己手动去解析字符串格式。

核心解决方案:用Npgsql的类型化读取方法

PostgreSQL里的text[][]类型(也就是你存的二维字符串数组),对应C#里的string[][]类型。你可以直接用GetFieldValue<T>方法精准读取,代码修改起来很简单:

NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
    // 替换成你的数组列的索引,或者直接用列名:reader.GetFieldValue<string[][]>("your_array_column_name")
    string[][] twoDArray = reader.GetFieldValue<string[][]>(1);

    // 这里是验证输出的示例,你可以根据自己的需求处理数组数据
    Console.WriteLine($"列名:{reader.GetName(1)}");
    foreach (var innerRow in twoDArray)
    {
        Console.WriteLine(string.Join("\t", innerRow));
    }
}

备选情况:如果数组是以字符串形式存储的

要是你在Rails里不小心把数组存成了普通文本字符串(比如看起来像数组的JSON格式字符串),那可以用JSON序列化工具来解析:

using System.Text.Json;

// ...

while (reader.Read())
{
    string arrayText = reader.GetString(1);
    string[][] twoDArray = JsonSerializer.Deserialize<string[][]>(arrayText);

    // 后续的数组处理逻辑和上面一致
}

小提醒

  • 确保你安装的Npgsql NuGet包是较新版本(3.0以上就支持数组类型,现在主流版本都没问题)
  • 确认PostgreSQL里的列类型是text[][]或varchar[][],而不是普通的text/varchar字段

这样就能顺利读取到你需要的二维数组数据啦!

内容的提问来源于stack exchange,提问作者Umes Bastola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:40:10