+ -
当前位置:首页 → 问答吧 → 与数据库连接 更新信息不成功

与数据库连接 更新信息不成功

时间:2011-12-11

来源:互联网

做了个航班管理系统 增删都成功
就是修改航班信息的时候 数据库和表的内容都没有修改保持原样 没有任何语法错误
//更改数据库
public int editFlight(FlightInfo flight)
  {
  int re = -1;
  Database db = new Database();
  db.getConn();
  string sql = "select * from flightInfo where f_flight = '" + flight.getF_flight()+"'";
  DataTable dt = db.query(sql);
   

  sql = "update flightInfo set f_ecoprice = '" + flight.getF_ecoprice() + "'";
  sql += ", f_company = '" + flight.getF_company() + "'";
  sql += ", f_airmodel = '" + flight.getF_airmodel() + "'";
  sql += ", f_departure = '" + flight.getF_departure() + "'";
  sql += ", f_destination = '" + flight.getF_destination() + "'";
  sql += ", f_start= '" + flight.getF_start() + "'";
  sql += ", f_arrival= '" + flight.getF_arrival() + "'";
  sql += ", f_topseat = '" + flight.getF_topseat() + "'";
  sql += ", f_topprice= '" + flight.getF_topprice() + "' ";
  sql += ", f_ecoseat= '" + flight.getF_ecoseat() + "' ";
  sql += ", f_flight ='" + flight.getF_flight() + "' ";
  sql += "where f_flight ='"+ flight.getF_flight() +"'";

  re = db.update(sql);
   
   
  db.closeConn();
  return re;
  }

 public int update(string sql)
  {
  int re = -1;
  SqlCommand command = new SqlCommand();
  command.Connection = conn;
  command.CommandText = sql;
  re = command.ExecuteNonQuery();
  this.closeConn();
  return re;
  }

//按确定按钮 提交修改后的信息
 private void button1_Click(object sender, EventArgs e)
  {
  string f_flight;
  f_flight = this.oldtxtF_flight.Text;
  FlightInfoBussiness uib = new FlightInfoBussiness();
  FlightInfo flight = uib.getFlight(f_flight);
   
  flight.setF_flight(this.newtxtF_flight.Text);
  flight.setF_company(this.newtxtF_company.Text);
  flight.setF_airmodel(this.newtxtF_airmodel.Text);
  flight.setF_departure(this.newtxtF_departure.Text);
  flight.setF_destination(this.newtxtF_destination.Text);
  flight.setF_start(this.newtxtF_start.Text);
  flight.setF_arrival(this.newtxtF_arrival.Text);
  flight.setF_topseat(int.Parse(this.newtxtF_topseat.Text));
  flight.setF_topprice(float.Parse(this.newtxtF_topprice.Text));
  flight.setF_ecoseat(int.Parse(this.newtxtF_ecoseat.Text));
  flight.setF_ecoprice(float.Parse(this.newtxtF_ecoprice.Text));
   
   
  int re = uib.editFlight(flight);
  if (re > -1)
  {
  MessageBox.Show("航班信息已修改!");
  f3.dataGridView1.DataSource = uib.getAllFlight();
  f3.dataGridView1.Refresh();
   
  this.Close();
  }
  else
  {
  MessageBox.Show("修改失败");
  }


   
  }

我已经改了很久了 希望各位帮帮忙

作者: zoe618   发布时间: 2011-12-11

提示什么信息呢?“修改失败”?

作者: mizuho_2006   发布时间: 2011-12-11

把你完整的sql显示出来,看看哪不对,或者放到查询器中执行一下

作者: bdmh   发布时间: 2011-12-11

有事务吗?有了要TRANSACTION。COMMIT()

作者: flyerwing   发布时间: 2011-12-11

建议你使用参数化更新,你那样写很容易出错的

作者: net_lover   发布时间: 2011-12-11

你那样写,要替换'为'',数字类型字段不需要加''

作者: net_lover   发布时间: 2011-12-11

引用 1 楼 mizuho_2006 的回复:

提示什么信息呢?“修改失败”?
提示的信息是航班信息已修改 但事实上并没有修改成功

作者: zoe618   发布时间: 2011-12-11

引用 5 楼 net_lover 的回复:

你那样写,要替换'为'',数字类型字段不需要加''
字段都是string类型的

作者: zoe618   发布时间: 2011-12-11

我在SQL里执行了UPDATE flightInfo
SET f_ecoprice = '8', f_company = '8', f_airmodel = '8', f_departure = '8', 
  f_destination = '8', f_start = '8', f_arrival = '8', f_topseat = 8, f_topprice = 8, 
  f_ecoseat = 8, f_flight = '8'
WHERE (f_flight = '1') 是正确的可以修改的

作者: zoe618   发布时间: 2011-12-11

相关阅读 更多