PostgreSql错误:22P02:整数的输入语法无效

时间:2010-10-16 15:55:08

标签: c# postgresql

我正在尝试在PostgreSQL中使用预处理语句,但它给了我一些非常令人沮丧的错误。

我正在尝试通过MediaID从数据库中选择一条记录。在DB中,MediaID是串行整数。在类结构中,它是一个int。

然而,当我调用sql.Prepare()时,它告诉我MediaID的输入语法无效。我不明白这是怎么回事。

NpgsqlCommand sql = mediaRepository.CreateCommand();

sql.CommandText = "SELECT * FROM Media WHERE 'MediaID' = :MediaID";
sql.Parameters.Add(new NpgsqlParameter("MediaID", NpgsqlDbType.Integer));
sql.Prepare();
sql.Parameters["MediaID"].Value = id;

令人沮丧的是,如果我将整数错误设置为NpgsqlDbType.Varchar,它就会准备好 - 它只是不会返回任何信息。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试更改此句:

sql.CommandText = "SELECT * FROM Media WHERE 'MediaID' = :MediaID";

进入这个:

sql.CommandText = "SELECT * FROM Media WHERE MediaID = :MediaID";

请注意从MediaID字段引用的单引号删除。