JAVA或我的IDE的限制或SQL问题?
我已经用Java创建了一个表单,我正在向数据库发送一些详细信息,如名称、类型、事件日期、事件时间等 conn是从我创建的DB类调用的。 状态变量与全局变量在同一文件中声明。 下面是“创建事件”按钮的代码:JAVA或我的IDE的限制或SQL问题?,java,sql,swing,netbeans,combobox,Java,Sql,Swing,Netbeans,Combobox,我已经用Java创建了一个表单,我正在向数据库发送一些详细信息,如名称、类型、事件日期、事件时间等 conn是从我创建的DB类调用的。 状态变量与全局变量在同一文件中声明。 下面是“创建事件”按钮的代码: // Creating Events try { if (txtType.getText().equals("") || txtDate.getText().equals("") || txtDescription.getText().equals("") || cmb
// Creating Events
try {
if (txtType.getText().equals("") || txtDate.getText().equals("") || txtDescription.getText().equals("") || cmbTime.getSelectedIndex() == 0 || txtName.getText().equals("") || cmbColor.getSelectedIndex() == 0 || cmbVenue.getSelectedIndex() == 0) {
JOptionPane.showMessageDialog(this, "All Fields Are Required To create an Event");
} else {
int record = conn.state.executeUpdate("insert into Events values('"+txtCustID.getText()+"','"+txtName.getText()+"','"+txtType.getText()+"','"+cmbColor.getSelectedItem().toString()+"','"+txtDescription.getText()+"','"+cmbVenue.getSelectedItem().toString()+"', '"+txtDate.getText()+"' , '"+cmbTime.getSelectedItem().toString()+"' , GETDATE() )");
if (record > 0) {
JOptionPane.showMessageDialog(this, "Event Registered Successfully!");
} else {
JOptionPane.showMessageDialog(this, "Event Not Registered!");
}
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, ex.getMessage());
}
问题:
同样的SQL查询在friend端工作正常,但给了我“列计数不匹配”错误。SQL数据库包含我再次检查的所有必需字段
我不希望在所有组合框中使用“Select”作为放置文本,而是希望组合框不显示文本,但我在Netbeans中看不到任何选项可以这样做。这是JAVA本身的局限还是我的IDE的局限
当前,用户必须单击并从组合框中选择一项。我想在用户关注组合框时立即打开它们。有一个叫做“聚焦”的活动。这是在这里使用的正确事件吗?我应该在其中编写什么代码,以便在获得焦点后立即打开组合框
学习使用PreparedStatements,有关更多详细信息,请参阅;
使用类似JComboxSetSelectEdItem的方法将其传递为null,这将导致JComboxBox最初为空。
是的,看到了吗
至于您的第一个问题,我们无法确定,因为我们无法访问数据库,但您应该确保您正在连接的数据库就是您认为正在连接的数据库
在insert语句中,还应该指定要插入的列,而不仅仅是值,因为顺序可能会更改…例如
insert into Events (..., ..., ...) values (?, ?, ?)
我也不鼓励您使用表单编辑器,学习如何手工编写UI,它将让您更好地了解UI的工作方式,以及如何在将来充分利用表单编辑器数据库是一样的。我用登录表检查了一下。将列名和值分开是最佳做法吗?我已经多次更改了这些值,因此如果在该查询中使用单独的列和值,那么每次都必须同时更改它们。在Java中使用什么语言创建UI?我总是使用Form Editor,或者您在表中添加更多或更少的值,然后您意识到哪些值是可用的。表单编辑器只是[Swing]周围的一个编辑器。我可以看到您添加了9个值,但我无法访问您的数据库,因此不可能知道。ID列是否自动递增?是的。我正在附加一个图像。很可能数据库不喜欢您尝试设置自动递增列的值…日期和时间值很重要,它们在SQL中填充得很好。