2016-06-29 10 views
0

Я пытаюсь вставить данные, введенные пользователем в таблице SQL Server, используя код ниже, код запускается без какой-либо ошибки, но данные не вставлены.Вставка данных в таблицу SQL Server с использованием jtextfield в netbeans

try { 
    Class.forName(driver); 
    Connection con=DriverManager.getConnection(url, user, pass); 
    String sql="insert into inventory" 
       +"(Product_Code,Product_Name,Quantity,Cost)" 
       +"value(?,?,?,?)"; 
    PreparedStatement pst=con.prepareStatement(sql); 
    pst.setString(1, product_code.getText()); 
    pst.setString(2, product_name.getText()); 
    pst.setString(3, quantity.getText()); 
    pst.setString(4, price.getText()); 
    pst.executeUpdate(); 
    JOptionPane.showMessageDialog(this, "entry successful");  
}          
catch(ClassNotFoundException | SQLException | HeadlessException e){ 
    JOptionPane.showMessageDialog(this, "entry successful"); 
} 
+0

'Количество, стоимость' ->' getText() '? попробуйте преобразовать в integer/float – gofr1

+0

все еще не в состоянии вставить строки –

+0

Что именно вы передаете этим параметрам? Можете ли вы показать образец данных? – gofr1

ответ

0

Синтаксическая ошибка в поле ниже INSERT сценария:

String sql="insert into inventory" 
      +"(Product_Code,Product_Name,Quantity,Cost)" 
      +"value(?,?,?,?)"; 

Опечатка в value( она должна быть values(, так что ваш код будет:

String sql="insert into inventory" 
     +" (Product_Code, Product_Name, Quantity, Cost)" 
     +" values (?, ?, ?, ?)"; 
+0

все еще не в состоянии вставить значения в таблицу –

0

Основываясь на комментариях, я предлагаю вам чтобы попытаться использовать этот код:

String url = "jdbc:sqlserver://localhost:1433;databaseName=YourDBName;integratedSecurity=false;user=MyUserName;password=*****;"; 

try { 
    Class.forName(driver); 
    Connection con=DriverManager.getConnection(url); 

    if (con!= null) { 
     System.out.println("Connected"); 
    } 

    String sql="insert into inventory" 
       +" (Product_Code,Product_Name,Quantity,Cost)" 
       +" values (?,?,?,?)"; 
    PreparedStatement pst=con.prepareStatement(sql); 
    pst.setString(1, product_code.getText()); 
    pst.setString(2, product_name.getText()); 
    pst.setInt(3, Integer.parseInt(quantity.getText())); 
    pst.setFloat(4, Float.parseFloat(price.getText())); 

    int rowsInserted = pst.executeUpdate(); 
    if (rowsInserted > 0) { 
     System.out.println("A new row was inserted successfully!"); 
    } 

    JOptionPane.showMessageDialog(this, "entry successful");  
}          
catch(ClassNotFoundException | SQLException | HeadlessException e){ 
    JOptionPane.showMessageDialog(this, "entry successful"); 
} 
+0

Ошибка «разыменование возможного нулевого указателя» отображается в строке «PreparedStatement pst = con.prepareStatement (sql);» –

+0

Итак, связь была установлена? Вы получили сообщение «Connected»? – gofr1

+0

И я изменил 'url' вам нужно изменить имя пользователя и пароль DB. – gofr1