2014-12-04 3 views
0

Я пытаюсь использовать параметризованные запросы Npgsql в FSharp, но я не могу правильно получить Npgsql для обновления значения параметра. Пример кода выглядит следующим образом:Npgsql F # Параметрированные запросы

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» параметр всегда устанавливается в нулевое значение, а когда рассматривать в качестве переменной часы он никогда не ставил. Без использования AddWithValue как я могу правильно установить эти параметры в FSharp?

ответ

2

я не знаю библиотеку, но линия

ins_command.Parameters.["keyid"].Value = (box key) 

выглядит, как он ничего не делает. Если только оператор = не был изменен, это будет только тестом для равенства. Он должен дать предупреждение компилятора, так как проверка равенства имеет тип bool, и эта строка ничего не делает с результатом.

Если вы хотите использовать свойство сеттер (или назначить изменяемое значение), используйте оператор <-

+0

Привет Вандру, +1 за идею. Я думаю, что это была ошибка новичков FSharp, учитывая, что распространенность = используется в разных местах, но не в других. –

 Смежные вопросы

  • Нет связанных вопросов^_^