【问题标题】:How to automatically insert date and time into sql table如何在sql表中自动插入日期和时间
【发布时间】:2019-07-22 21:19:28
【问题描述】:

我在 SQL Server 2008 中创建了一个表名EventLog7

create table EventLog7(
    EventId int not null identity(1,1),
    EventDate datetimeconstraint DF_myDate DEFAULT (getdate()), 
    ObjectId varchar(50),
    Name varchar(50),
    Value varchar (50)
) 

在 NetBeans 中,当我按下按钮时,有三个 jtextfields 有助于将数据插入 EventLog SQL 表(ObjectId、Name、Value)。 下面提到了动作按钮代码:

 String objectid=jTextField1.getText();
 String value=jTextField2.getText();
 String name=jTextField3.getText();           
 try{
     DoConnect();
     st=conn.createStatement();         
     String sql = "insert into EventLog7 values('"+objectid+"','"+name+"','"+value+"')";
     pst = conn.prepareStatement(sql);
     pst.execute();
     rs=st.executeQuery("select * from EventLog7");               
     jTable1.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(rs));
 }
 catch(Exception e){
     JOptionPane.showMessageDialog(null,e);
 } 

所以,我希望当我在三个 jtextfile 中插入 ObjectId、Name、Value 的值时,Sql 表将自动插入这些数据的日期和时间。

但根据我的代码,它显示错误

列名或提供的值的数量与表定义不匹配

所以请给我正确的方法。

【问题讨论】:

  • Do NOT 将输入连接到这样的 SQL 语句中。了解如何正确使用 PreparedStatement 并通过 ResultSet.setInt()setString() 传递值。

标签: java sql sql-server time


【解决方案1】:
String sql = "insert into EventLog7 values('"+objectid+"','"+name+"','"+value+"')";

行将是

String sql = "insert into EventLog7(ObjectId, Name, Value, EventDate) values('"+objectid+"','"+name+"','"+value+"',GETDATE())";

我不知道 ID 是如何生成的 sql-server ,如果不是自动分配/增量,您可能还需要设置它。

我可以说这不安全,您需要使用 ?s 代替您的变量,并使用 set 方法将它们设置为 a_horse_with_no_name 提醒。 使用我的建议仅用于缓解您现在遇到的错误。

【讨论】:

  • 我插入了您的代码,然后它在“电池”附近显示错误语法不正确请提供完整的操作按钮代码
  • 你的代码里面没有battery这样的东西,和你问的不一样
  • 那我该怎么办?
  • 查看更新后的查询,我忘了's,现在他们在那里
  • 请向上或接受它对您有帮助的答案。谢谢。
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 2014-07-07
  • 2011-07-14
  • 2015-03-17
相关资源
最近更新 更多