Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将多行添加到JTable?_Java_Jtable - Fatal编程技术网

Java 如何将多行添加到JTable?

Java 如何将多行添加到JTable?,java,jtable,Java,Jtable,我试图从数据库填充JTable,但输出仍然为空。这是我的密码: private void buttonsearchActionPerformed(java.awt.event.ActionEvent evt) { conn=DatabaseConnection.dbConnection(); 试一试{ String Sql=“从produit中选择idp、nomp、prix和stock,其中codep=” +textsearch.getText()+“'”; pst=conn.prepareSt

我试图从数据库填充JTable,但输出仍然为空。这是我的密码:

private void buttonsearchActionPerformed(java.awt.event.ActionEvent evt)
{
conn=DatabaseConnection.dbConnection();
试一试{
String Sql=“从produit中选择idp、nomp、prix和stock,其中codep=”
+textsearch.getText()+“'”;
pst=conn.prepareStatement(Sql);
ResultSet rs=pst.executeQuery();
DefaultTableModel=新的DefaultTableModel();
Object[]列={“Id Produit”、“Nom Produit”、“Quantité”、“Prix”、“Stock”};
model.setColumnIdentifiers(列);
表2.setModel(model);
Object[]行=新对象[5];
如果(rs.next())
{
行[0]=rs.getInt(“idp”);
行[1]=rs.getString(“nomp”);
//行[2]=rs.getString(“”);
行[3]=rs.getString(“prix”);
第[4]行=rs.getString(“股票”);
model.addRow(row);
}
}捕获(例外e){
showMessageDialog(null,e);
}
}                        
表“poduit”为:

中的“数量”

这意味着修改项目数量以创建账单

我的问题是第二行粘贴在第一行的右边 感谢您的帮助

根据互联网本身,所有示例都使用以下行:

DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();
因此,您必须替换代码行“
DefaultTableModel=new DefaultTableModel()'by
DefaultTableModel=(DefaultTableModel)table.getModel()

根据互联网本身,所有示例都使用以下行:

DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();

因此,您必须替换代码行“
DefaultTableModel=new DefaultTableModel()'by
DefaultTableModel=(DefaultTableModel)table.getModel()

您可能希望使用循环来迭代结果集(当前仅使用第一个条目),并将每个结果行添加到模型中。当你这样做的时候,你当然需要在循环外创建表模型和列标题。除了Thomas的评论:@Thomas我的代码甚至没有显示第一行,我不知道问题出在哪里请尝试调试。
rs.next()
返回什么?另外,请不要对数据库查询使用字符串连接。这是避免SQL注入的基本方法,我是第二个Ferdz的评论。调试代码并查看查询是否返回任何内容。让我告诉您,如果您将参数附加到查询字符串中,而不是使用
PreparedStatement
setString(…)
(或任何其他设置参数的方法)会发生什么情况。您可能希望使用循环来迭代结果集(当前仅使用第一个条目)并将每个结果行添加到模型中。当你这样做的时候,你当然需要在循环外创建表模型和列标题。除了Thomas的评论:@Thomas我的代码甚至没有显示第一行,我不知道问题出在哪里请尝试调试。
rs.next()
返回什么?另外,请不要对数据库查询使用字符串连接。这是避免SQL注入的基本方法,我是第二个Ferdz的评论。调试代码并查看查询是否返回任何内容。让我告诉您,如果您将参数附加到查询字符串中,而不是使用
PreparedStatement
setString(…)
(或任何其他设置参数的方法)会发生什么情况。
DefaultTableModel deFaultTableModel = (DefaultTableModel) myJTable.getModel();