我在尝试将整数添加到Postgresql数据库时遇到了问题。虽然Varchars可以正常工作,但是当我使用以下代码时:
var parameter = cmd.CreateParameter();
parameter.Value = Int32.Parse(x.Value.ToString());
Console.WriteLine(parameter.Value);
parameter.ParameterName = x.Key.ToString();
cmd.Parameters.Add(new NpgsqlParameter("confirmations",NpgsqlTypes.NpgsqlDbType.Integer));
for (int search=0; search != cmd.Parameters.Count; search++)
执行时出错,我使用的是:
cmd.ExecuteNonQuery();
听起来像是数据库问题:System.InvalidCastException:无法使用Int32Handler处理程序写入CLR类型System.String。 lambda_method(Closure,NpgsqlTypeHandler,Object,NpgsqlLengthCache&,NpgsqlParameter)中的代码出错,
在C:\ projects \ npgsql \ src \ Npgsql \ NpgsqlParameter.cs:line 553处验证并获取长度。
在C:\ projects \ npgsql \ src \ Npgsql \ NpgsqlCommand.cs:line 793处验证参数。
在C:\ projects \ npgsql \ src \ Npgsql \ NpgsqlCommand.cs:line 1141处执行DbDataReader。
在C:\ projects \ npgsql \ src \ Npgsql \ NpgsqlCommand.cs:line 1042处执行ExecuteNonQuery。
在C:\projects\npgsql\src\Npgsql\NpgsqlCommand.cs:line 1025处执行ExecuteNonQuery。
在BitcoinType.DatabaseManager.MakeInsert(Dictionary`2 requestData)中发生错误,在/Users/kamilkostrzewski/Projects/BitcoinType/BitcoinType/Program.cs:line 261行。
此处链接没有对我有帮助。