如何将输入数据添加到sql值?

0ejtzxu1  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(381)

我们想建立一个医疗信息系统。在这种体制下,我们必须购买药品。当用户购买药品时,必须输入条形码编号和购买药品的编号。我们要获取要服用的药物的数量,并将此值添加到sql表中。但我们有个错误。

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10013''where Barcode='10013'' at line 1

sql表
下面是我的代码:buymedicine.java
...

BarcodeField = new JTextField();
    BarcodeField.setBounds(130, 26, 294, 21);
    contentPane.add(BarcodeField);
    BarcodeField.setColumns(10);

    NumberField = new JTextField();
    NumberField.setBounds(130, 86, 294, 21);
    contentPane.add(NumberField);
    NumberField.setColumns(100);

    JButton btnBuy = new JButton("Buy");
    btnBuy.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root","");
                Statement stmt = con.createStatement();
                String x = "Select Stock from medicinelist where Barcode='" + BarcodeField.getText()+"'";
                PreparedStatement preparedStmt2 = con.prepareStatement(x);
                preparedStmt2.execute();
                String sql = "Update medicinelist set Stock='" +Integer.parseInt(NumberField.getText())+x
                +"'where Barcode='"+ BarcodeField.getText()+"'";
                PreparedStatement preparedStmt = con.prepareStatement(sql);
                preparedStmt.executeUpdate();

                JOptionPane.showMessageDialog(null, "Done!!!");

                con.close();

            }catch(Exception e) { System.out.print(e);}
        }

});

...

xn1cxnb4

xn1cxnb41#

string x=“从medicinelist中选择库存,其中条形码='”+barcodefield.gettext()+“'”;

string sql=“update medicinelist set stock='”+integer.parseint(numberfield.gettext())+x+“'其中barcode='”+barcodefield.gettext()+“'”;
所以字符串sql
string sql=“update medicinelist set stock='”+integer.parseint(numberfield.gettext())+“从medicinelist中选择库存,其中barcode='”+barcodefield.gettext()+“'”+“,其中barcode='”+barcodefield.gettext()+“'”;
错误也是如此:)
在结果集中收集“stringx”查询输出,并在“stringsql”中使用它。

s8vozzvw

s8vozzvw2#

+"'where Barcode='"+ BarcodeField.getText()+"'";

单引号和where之间没有空格。提供并再次运行。

wi3ka0sx

wi3ka0sx3#

在您的查询中

'" +Integer.parseInt(NumberField.getText())+ x +"'where

放置+“ ' 查询在哪里 x 这样地

'" +Integer.parseInt(NumberField.getText())+"'"+ x +" where

并为干净的查询放置空间。

相关问题