繁体   English   中英

Npgsql 查询中的数据类型问题

[英]Problems with Data type in Npgsql query

我正在尝试在带有日期列的 PostgreSQL 表中插入一行。 在 UI 上,我有一个 DateTimePicker,用户可以在其中选择正确的日期。 到目前为止,我得到了这个:

在用户界面上:

objPresupuesto.date = this.dtpFechaPres.Value.ToString("yyyy-MM-dd");

关于插入行的方法:

NpgsqlCommand query = new NpgsqlCommand("insert into presupuesto(presupuesto, codigo, descripcion, fecha, cliente, proyecto, total) values(nextval('presupuesto_presupuesto_seq'), @codigo, @descripcion, @fecha, @cliente, @proyecto,  @total);Select lastval();", conn);            
...
query.Parameters.Add(new NpgsqlParameter("fecha", NpgsqlDbType.Date, 0, "fecha"));
...
query.Parameters[2].Value = obj.date.toString;//without the toString it also fails

它抛出这个异常:

Specified cast is not valid.

obj.date 值为 2011-04-29。 尝试在周围加上单引号,但它也失败了。

数据库列类型是日期。

以前有人做过吗? 有任何想法吗?

我检查了这个链接搜索并回答,但它没有帮助。 谢谢

我注意到的第一件事是,当您添加参数时,从命令引用带有“@”的值的开头就缺少“@”。

您确定 Parameters[2] 是您的“fecha”参数吗?

query.Parameters[2].Value = CDate(obj.date)

  1. 尝试使用:

npgsqlCommand.Parameters.Add("fecha", NpgsqlDbType.Date).Value = DateTime.Now;

更多可读代码。

  1. obj.date的类型是 DateTime 结构吗?

  2. 添加到连接字符串参数Convert Infinity DateTime更多信息检查: http://www.npgsql.org/doc/connection-string-parameters.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM