【问题标题】:problem in inserting the value in the database在数据库中插入值的问题
【发布时间】:2011-09-20 13:51:07
【问题描述】:

您好,我正在开发安卓应用程序。我正在使用 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 数据类型。但它仍然给了我异常,上面写着“java.sql.sqlexception:从字符串转换日期或/和时间时转换失败”。如果你知道答案,请帮助我。我在 googlwe 中搜索但没有得到答案。

【问题讨论】:

  • 您能提供您的表架构吗?
  • 使用preparedStatement来节省时间。

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


【解决方案1】:

好的,让我们开始吧。

首先,也是最重要的一点,您的代码容易受到SQL Injection 的攻击。您应该着手处理并开始使用参数。

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

更新

关于java中的参数化查询,阅读这里:

【讨论】:

  • 参数是什么意思?我没听懂你。
  • 嘿,我用过preparedStatement。但是当我执行 ps.executeUpdate() 时,它给了我异常,例如“executeUpdate 方法不能返回结果集”
【解决方案2】:

我猜是日期格式不匹配。

试试看这里:http://www.coderanch.com/t/385771/java/java/java-sql-Date-dd-mm

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多