如何使用NpgSql将一个字符串数组插入Postgresql列

时间:2018-01-25 23:05:39

标签: .net arrays string postgresql-9.3 npgsql

我正在尝试使用.NET将字符串数组插入到列中。它是VB.NET中的遗留应用程序,但我可以轻松地从C#转换。这是我试过的:

        p = New NpgsqlParameter("company_address", NpgsqlTypes.NpgsqlDbType.Array + NpgsqlTypes.NpgsqlDbType.Text)
        p.Value = data.company_address     ' <--- array of strings
        cmd.Parameters.Add(p)

我得到一个错误&#34;无法转换类型&#39; System.String []&#39;输入&#39; System.IConvertible&#39;&#34;以上,或者我尝试使用此格式的值:&#39; {&#34; string1&#34;,&#34; string2&#34;,&#34; string3&#34;}&#39; 但后来我收到错误&#34;输入字符串格式不正确&#34;。我也尝试了同样的错误:ARRAY [&#39; string1&#39;,&#39; string2&#39;,&#39; string3&#39;]

那么数组总是必须转换为某种格式的字符串,或者NpgSqlParameter可以用来接受字符串数组吗?

字段company_address定义为String()Npgsql版本为2.2

由于

1 个答案:

答案 0 :(得分:0)

您需要NpgsqlTypes.NpgsqlDbType.Array | NpgsqlTypes.NpgsqlDbType.Text(按位或),而不是NpgsqlTypes.NpgsqlDbType.Array + NpgsqlTypes.NpgsqlDbType.Text

另一种选择是完全省略NpgsqlDbType并让Npgsql推断 - 当它看到字符串数组时,它将自动发送正确的类型。