[英]My java exe cannot connect to sql database, but if I am use my IDE it works
[英]JAVA or my IDE's limitation or SQL issue?
我已經用Java創建了一個表單,並且正在向數據庫發送一些詳細信息,例如名稱,類型,事件日期,事件時間等。
以下是“創建事件”按鈕的代碼:
// 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查詢工作正常,但出現“列數不匹配”錯誤。 SQL數據庫具有所有必填字段(我再次檢查了)。
我不想在所有組合框中使用“選擇”(作為放置文本),而是希望組合框不顯示任何文本,但我看不到Netbeans中的任何選項。 是JAVA本身還是我的IDE的局限性?
當前,用戶必須單擊並從組合框中選擇一個項目。 我想在用戶關注它們后立即打開組合框。 有一個名為“ FocusGained”的事件。 在這里使用合適的活動嗎? 一旦獲得焦點,我應該在其中編寫什么以打開組合框?
PreparedStatement
,有關更多詳細信息,請參見使用預處理語句 。 JComboBox#setSelectedItem
類的東西將其傳遞為null
,這將導致JComboBox
最初為空。 JComboBox#showPopup
關於第一個問題,由於我們無權訪問數據庫,因此我們無法判斷,但是您應確保要連接的數據庫是您認為要連接的數據庫。
在您的插入語句中,您還應該指定要插入的列,而不僅是值,因為順序可能會發生變化...例如。
insert into Events (..., ..., ...) values (?, ?, ?)
我也會勸阻您不要使用表單編輯器,學習如何手工編寫UI的代碼,這將使您對UI的工作方式以及將來如何充分利用表單編輯器有更多的了解。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.