我EventLog7在 SQL Server 2008 中創(chuàng)建了一個(gè)表名: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 中,當(dāng)我按下按鈕時(shí),有三個(gè) jtextfields 有助于將數(shù)據(jù)插入 EventLog SQL 表(ObjectId、Name、Value)。下面提到了動(dòng)作按鈕代碼: 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); } 所以,我希望當(dāng)我在三個(gè) jtextfile 中插入 ObjectId、Name、Value 的值時(shí),Sql 表將自動(dòng)插入這些數(shù)據(jù)的日期和時(shí)間。但根據(jù)我的代碼,它顯示錯(cuò)誤列名或提供的值的數(shù)量與表定義不匹配所以請(qǐng)給我正確的方法。
1 回答

慕碼人2483693
TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
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 ,如果不是自動(dòng)分配/增量,您可能還需要設(shè)置它。
而且我可以說(shuō)這是不安全的,您需要使用?
s 代替變量并使用 set 方法將它們?cè)O(shè)置為 a_horse_with_no_name 提醒。僅使用我的建議來(lái)減輕您現(xiàn)在遇到的錯(cuò)誤。
添加回答
舉報(bào)
0/150
提交
取消