我有一个具有以下模式的表:
CREATE TABLE account
(
id serial primary key,
login varchar(40) not null,
password varchar(40) not null,
data hstore
);
我想要使用一个带有参数的
NpgsqlCommand
对象从我的应用程序中检索和存储账户数据。我需要在NpgsqlParameter
中使用哪种DbType
? 枚举NpgsqlDbType
没有hstore的值。我能否将Dictionary
或HashTable
用作NpgsqlParameter
对象的值?当我使用JSON列时,我可以创建一个
NpgsqlDbType.Text
类型的参数,使用类似于JSON.Net的库将对象序列化为JSON字符串并发送类似于以下的SQL语句:INSERT INTO account (login, password, data) VALUES (:login, :password, :data::json)
不幸的是,这不能用于 hstore 列。当我尝试这样做时,会出现语法错误:
INSERT INTO account (login, password, data) VALUES (:login, :password, :data::hstore)
我传递给数据参数的字符串如下:
'key1 => "value1", key2 => "value2"'
这个字符串包含键值对,使用箭头符号将键和值分隔开。在IT技术中,这种格式通常用于表示配置信息或参数选项。