2016-05-06 25 views
-2

私はこのコードを書いてテキストフィールドから値を取得し、データベース内のレジスタを更新しますが、 "構文エラー:行1、列196にある" \ "を検出しました。 構文エラーでJTableの列番号から別の行はchange..Can誰もがここで間違っているものを私に言うとどのように私はそれがここのコードです 修正することができます。java sql構文エラー

String up = "UPDATE BENEFICTOR SET ID='"+T1.getText().toString()+"', FID='"+T2.getText().toString()+"', FULLNAME='"+T3.getText().toString()+"', GENDER='"+T4.getSelectedItem().toString()+"', IDNUM='"+T5.getText().toString()+"', STATUS='"+T6.getSelectedItem().toString()+"', ORIGINALAREA='"+T7.getText().toString()+"', RECENTAREA='"+T8.getText().toString()+"', EVAL='"+T9.getSelectedItem().toString()+"', PHONENYMBER1='"+T10.getText().toString()+"', PHONENUMBER2='"+T11.getText().toString()+"', SITUATION='"+T12.getText().toString()+"', VISIT='"+T13.getText().toString()+" WHERE ID="+T1.getText().toString(); 
+0

これはSwingまたはNetBeansとは何が関係していますか? SQL構文エラーがあります。 – camickr

答えて

3

は、そのコードを取り除くとPreparedStatementを使用しています。 PreparedStatementは、それぞれの "?"を関連するパラメータに置き換え、適切な区切り文字を使用します。

String sql = "UPDATE BENEFICTOR SET ID = ?, FID = ?, .... WHERE ID = ?"; 

PreparedStatement stmt = connection.prepareStatement(sql); 

stmt.setString(1, T1.getText()); 
stmt.setString(2, T2.getText()); 
... 
stmt.setString(?, T1.getText()); 
stmt.executeUpdate(); 
stmt.close(); 
+0

私は疑問符としてそれを置くか、値でそれを記入する必要がありますか? –

+0

それは私に今すぐ与えます:現在のステートメントの少なくとも1つのパラメータは初期化されていません –

+0

ので、すべてを初期化してください。私はあなたに最初の2つのコードを与えました。あなたが持っているパラメータの数はわかりません。 SQL文全体をコーディングする必要があります。私はあなたのためにそれをすべてするつもりはありません。 – camickr

0

これはスマートではないようなSQLを組み立てる、あなただけの ''

VISIT='"+T13.getText().toString()+" WHERE ID="+T1.getText().toString(); 

を欠場しており、他の不注意な行動は...

"UPDATE BENEFICTOR SET ID='"+T1.getText().toString()+"', 
" WHERE ID="+T1.getText().toString(); 
です:あなたが始めるために

は、最初に追加した引用に重点を置いています。