1

我发布了一个关于如何将字符串日期转换为要添加到访问数据库中的日期/时间字段的问题:这里是链接

如何使用 java sql INSERT 查询插入日期/时间 ms 访问字段

我找到了我在这里使用的解决方案,这是我的代码

        if(b==c.t.addR){
        String n=Integer.toString(4);
        String t=c.t.titlefield.getText();
        String d=c.t.datefield.getText();
        String p=c.t.progressfield.getText();
        String pr=c.t.pselection;
        String s="Open";
        SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a");

        try {
            date = df.parse(d);
            String query = "INSERT into Records (Deadline) Values(?)";
            PreparedStatement ps  = c.b.con.prepareStatement(query);

            ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
            ps.executeUpdate();

        }catch (Exception er) {
            // TODO Auto-generated catch block
            er.printStackTrace();
        }


        try {
            c.b.st.executeUpdate("INSERT into Records (Title,Progress,Priority,Status) VALUES('"+t+"','"+p+"','"+pr+"','"+s+"') ");
            JOptionPane.showMessageDialog(null, "Record Added");
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }


    }

现在出现的问题是,日期被添加到单独的记录中,而其他字段(如标题、进度等)被添加到另一个记录中!!!如何在单个记录中插入日期和其他字符串字段。请用几行代码来说明!!!以前解决方案的修改将非常有帮助,谢谢!!

4

2 回答 2

0

您可以通过执行一条 sql 语句来插入 int oa 单条记录。您只需将列添加到语句中并使用准备好的语句设置它们的值。这是一种执行插入而不是连接字符串的更安全的方法。

if(b==c.t.addR){
    String n=Integer.toString(4);
    String t=c.t.titlefield.getText();
    String d=c.t.datefield.getText();
    String p=c.t.progressfield.getText();
    String pr=c.t.pselection;
    String s="Open";
    SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a");

    try {
       date = df.parse(d);
       String query = "INSERT into Records (Deadline,Title,Progress,Priority,Status)" 
           + "Values(?, ?, ?, ?,?)";

       PreparedStatement ps  = c.b.con.prepareStatement(query);

       ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
       ps.setString(2,t);
       ps.setString(3,p);
       ps.setSring(4,pr);
       ps.setString(5,s);
       ps.executeUpdate();

        }catch (Exception er) {
          // TODO Auto-generated catch block
          er.printStackTrace();
        }

}
于 2013-01-17T10:26:06.867 回答
0

如何在单个记录中插入日期和其他字符串字段

使它成为一个插入语句而不是 2。

   String query = "INSERT into Records (Deadline,Title,Progress,Priority,Status) Values(?,?,?,?)"
 PreparedStatement ps  = c.b.con.prepareStatement(query);

                ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
                ps.setString(2,t);
                ps.setString(3,p);
                ps.setSring(4,pr);
                ps.setString(5,s);
                ps.executeUpdate();
于 2013-01-17T10:23:59.637 回答