String strSQL="update books set bookName="+BookNameTextField.setText(rs.getString(2))+",PressName ="+PressNameTextField.setText(rs.getString(3))+",Author="+AuthorTextField.setText(rs.getString(4))+",Address="+AddressTextField.setText(rs.getString(5))+",PressDate="+PressDateTextField.setText(rs.getString(6))+",Price="+PriceTextField.setText(rs.getString(7))+",Comment="+CommentTextField.setText(rs.getString(8))+"where ISBN="+BookISBNTextField.getText().trim();
时间: 2024-03-09 22:51:12 浏览: 14
这段代码存在一些问题,应该进行如下修改:
```
String strSQL = "UPDATE books SET bookName='" + BookNameTextField.getText() + "', PressName='" + PressNameTextField.getText() + "', Author='" + AuthorTextField.getText() + "', Address='" + AddressTextField.getText() + "', PressDate='" + PressDateTextField.getText() + "', Price='" + PriceTextField.getText() + "', Comment='" + CommentTextField.getText() + "' WHERE ISBN='" + BookISBNTextField.getText().trim() + "'";
```
在这个修改后的语句中,我们使用了单引号将字符串值括起来,以保证 SQL 语句的正确性。同时,我们还使用了 getText() 方法获取文本框中的值,而不是 setText() 方法将值赋给文本框。最后,我们将 WHERE 条件中的 ISBN 值加上了单引号。
需要注意的是,这段代码中存在 SQL 注入的风险,建议使用 PreparedStatement 对象来执行 SQL 语句,以提高程序的安全性。
相关问题
String strSQL="update books set bookName='"----------;完善代码
好的,请问您需要将书名修改为什么呢?假设您需要将书名修改为“高等数学”,那么完整的代码如下:
```
String strSQL = "update books set bookName='高等数学' where bookID='xxx'";
```
其中,bookID是您要修改的书籍的ID,xxx是具体的数值。这条SQL语句的作用是将书籍ID为xxx的书籍的书名修改为“高等数学”。请将xxx替换成具体的数值。
string strSql; string condition = ""; DataAccess data = new DataAccess(); DataSet ds; if (txtCid.Text != "") { condition += "and Cid='" + txtCid.Text + "'"; } if (txtCname.Text != "") { condition += "and Cname='" + txtCname.Text + "'"; } strSql = "select Cid as 课程编号,Cname as 课程名称,Credit as 学分 from Courseinfo where 1=1" + condition; data.dataCon(); ds = data.getDataSet(strSql); dgvInfo.DataSource = ds.Tables[0];注释每一行代码的作用
这段代码主要是进行数据查询和显示,以下是每一行代码的作用:
1. `string strSql;` 声明一个字符串变量 strSql。
2. `string condition = "";` 声明一个字符串变量 condition,并初始化为空字符串。
3. `DataAccess data = new DataAccess();` 实例化一个 DataAccess 对象 data。
4. `DataSet ds;` 声明一个 DataSet 对象 ds。
5. `if (txtCid.Text != "")` 判断文本框 txtCid 是否为空。
6. `{ condition += "and Cid='" + txtCid.Text + "'"; }` 如果文本框 txtCid 不为空,将字符串 "and Cid='" + txtCid.Text + "'" 添加到 condition 变量中。
7. `if (txtCname.Text != "")` 判断文本框 txtCname 是否为空。
8. `{ condition += "and Cname='" + txtCname.Text + "'"; }` 如果文本框 txtCname 不为空,将字符串 "and Cname='" + txtCname.Text + "'" 添加到 condition 变量中。
9. `strSql = "select Cid as 课程编号,Cname as 课程名称,Credit as 学分 from Courseinfo where 1=1" + condition;` 构造查询语句,将字符串 "select Cid as 课程编号,Cname as 课程名称,Credit as 学分 from Courseinfo where 1=1" 和 condition 变量拼接,赋值给 strSql 变量。
10. `data.dataCon();` 打开数据库连接。
11. `ds = data.getDataSet(strSql);` 执行查询语句,将结果赋值给 ds 变量。
12. `dgvInfo.DataSource = ds.Tables[0];` 将查询结果显示在 DataGridView 控件中。