我正在使用PostgreSQL作为我的数据库。我有一份申请书
-
ASP.NET
-
-
网络表单
-
将Npgsql与PostgreSQL结合使用
我有一张名为
特布拉普特
在我的数据库中,在那个表中有一个名为
该列的数据类型是
无时区时间
查询工具
INSERT INTO tblAppt (appttime) VALUES ('00:30:00');
结果是:
INSERT 0 1 Query returned successfully in 105 msec.
这意味着该记录已添加到我的表中,在图像中您可以看到我有一行:
现在在我的web应用程序中,有一个名为
txtCustTime公司
00:30:00
当我按下submit按钮时,会出现以下错误:
System.InvalidCastException系统
无法写入CLR类型系统。字符串
处理程序类型TimeHandler
string insertstmt = "INSERT INTO tblAppt(appttime) VALUES (@ApptTime)";
NpgsqlCommand cmd = new NpgsqlCommand (insertstmt, con);
cmd.Parameters.Add("@ApptTime", NpgsqlDbType.Time );
cmd.Parameters ["@ApptTime"].Value = txtCustTime.Text;
con.Open ();
cmd.ExecuteNonQuery ();
con.Close ();
我的问题是,我是否需要强制转换它,因为文本框中的值或使用不同的数据类型或其他类型。
我在那个表中有其他列不是时间或日期,他们提交罚款。我的问题似乎特别针对这种特殊的列类型。
附加说明:
如果在提交时运行此命令,则会将值添加到数据库中:
string insertstmt = "INSERT INTO tblAppt(appttime) VALUES ('00:30:00')";
NpgsqlCommand cmd = new NpgsqlCommand (insertstmt, con);
con.Open ();
cmd.ExecuteNonQuery ();
con.Close ();