我正在尝试使用.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
由于
答案 0 :(得分:0)
您需要NpgsqlTypes.NpgsqlDbType.Array | NpgsqlTypes.NpgsqlDbType.Text
(按位或),而不是NpgsqlTypes.NpgsqlDbType.Array + NpgsqlTypes.NpgsqlDbType.Text
。
另一种选择是完全省略NpgsqlDbType并让Npgsql推断 - 当它看到字符串数组时,它将自动发送正确的类型。