我尝试在FSharp中使用Npgsql参数化查询,但我无法正确获取Npgsql来更新参数值。示例代码如下所示:
let ins_command = new NpgsqlCommand("SELECT * FROM test_table WHERE keyid = :keyid")
ins_command.Parameters.Add(new NpgsqlParameter("keyid", NpgsqlTypes.NpgsqlDbType.Integer)) |> ignore
for key in keys do
ins_command.Parameters.["keyid"].Value = (box key)
ins_command.ExecuteScalar())
" keyid"参数始终设置为null,当作为监视变量查看时,它永远不会设置。不使用AddWithValue
如何在FSharp中正确设置这些参数?
答案 0 :(得分:2)
我不知道图书馆,但行
ins_command.Parameters.["keyid"].Value = (box key)
看起来它什么都不做。除非=
运算符已更改,否则这只是对相等性的测试。 应给出编译器警告,因为检查相等性是bool
类型,并且此行不对结果执行任何操作。
如果要使用属性设置器(或分配给可变值),请使用运算符<-