【问题标题】:Use string[][] with ngpsql将 string[][] 与 npgsql 一起使用
【发布时间】:2016-03-22 17:25:32
【问题描述】:

不支持?尝试插入命令参数设置为的数据时出现异常:

var parameter = ((IDbDataParameter)cmd.Parameters[index]);
var list = (string[][])value;
parameter.Value = list;

有消息

System.NotSupportedException:Npgsql 或您的 PostgreSQL 不支持此 .NET 类型:System.String[][]

我正在使用 PostgreSQL 9.4 并创建了一个类型为 text[][] 的列。由于text[] 映射到string[] 没有任何问题,我看不出二维数组不起作用的原因。

【问题讨论】:

    标签: .net postgresql npgsql


    【解决方案1】:

    Postgres 中没有数据类型 text[][]。文档允许指示多个数组维度的语法变体,但在内部,所有这些都映射到适用于任意数量维度的相同(且唯一)数组类型:text[]。在您的 .net 声明中尝试 string[]

    你不必相信我的话,测试一下自己:

    SELECT pg_typeof(NULL::text[][])            AS type1
         , pg_typeof('{a,b}'::text[][])         AS type2
         , pg_typeof('{{{a,b},{c,d}}, {{a,b},{c,d}}}'::text[][][][][]) AS type3;
    
    
     type1  | type2  | type3
    --------+--------+--------
     text[] | text[] | text[]
    

    相关:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-30
    • 2010-11-06
    • 1970-01-01
    • 2015-10-04
    • 2015-09-15
    • 2010-09-22
    • 1970-01-01
    • 2018-04-06
    相关资源
    最近更新 更多