在数据库中插入值时出现问题

时间:2011-09-20 13:51:07

标签: java android sql sql-server sql-server-2008

您好我正在开发Android应用程序。我使用sql server 2008 R2数据库来存储数据并检索数据。现在,当我在数据库中插入值时,我在表中插入了4个日期。

以下是查询:

"INSERT Into Task_Master VALUES ('1'," +
                "" +userId+"," +userId+ ",'N','" +Subject+ "'," +
                "'" + serverdate + "','" + StartDate+ "','" + serverdate + "'," +
                "'"+" "+"'," +
                "'" +" "+ "','0'," +groupId+ ",0,0,1,0,'1/1/1900','','N','" +cal.getTime()+ "','')" +
                " Select Scope_Identity()";

在“Serverdate”中,StartDate,Cal.getTime()都具有数据类型Date。在数据库中,我使用了datetime数据类型。但它仍然给我Exception,它说“java.sql.sqlexception:从字符串转换日期或/和时间时转换失败”。如果你知道答案,请帮助我。我在googlwe搜索但没有得到答案。

2 个答案:

答案 0 :(得分:4)

好的,我们这样做。

首先,最重要的是,您的代码容易受到SQL Injection的攻击。您应该继续使用参数。

其次,当你开始使用参数时,你的错误很可能会消失(或者重新出现在其他地方,这次更清楚错误)。这可能是因为服务器可能“不喜欢”你的stringly typed日期格式,所以它失败了。

<强>更新

关于java中的参数化查询,请在此处阅读:

答案 1 :(得分:0)

我猜是日期格式不匹配。

尝试查看此处:http://www.coderanch.com/t/385771/java/java/java-sql-Date-dd-mm