2016-05-06 6 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

Это дает мне прямо сейчас: хотя бы один параметр для текущего оператора неинициализирован –

+0

Итак, убедитесь, что вы их инициализировали. Я только дал вам код для первых двух. Я не знаю, сколько у вас параметров. Вам нужно закодировать весь оператор 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(); 

сосредоточиться на котировках, которые вы добавили сначала.

Смежные вопросы