日期:2014-05-18  浏览次数:20788 次

关于Access语句更新数据库的问题
各位大神,急求解决该问题,我用ACCESS语句写的程序不能够正常运行,却找不出问题,调试时候运行到红色标记的 da.Fill(ds);时就自动跳出try...catch语句,求解原因
[code=C#][/code] private void button4_Click(object sender, EventArgs e)
  {
  try
  {
  if (textBox1.Text == "")
  {
  MessageBox.Show("请选择或输入要删除的船只编号信息", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
  }
  else
  {
  DataSet ds = new DataSet();
  string strFilePath = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\DB_Test.mdb";
  // 判断要删除的数据信息是否存在
  string sql = string.Format("SELECT * FROM 抛石信息 where 船只编号='{0}'", textBox1.Text.Trim() );
  //定义SQL Server连接对象
  System.Data.OleDb.OleDbConnection con = new OleDbConnection(strFilePath);
  System.Data.OleDb.OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
  da.Fill(ds); if (ds.Tables[0].Rows.Count > 0)
  {
  if (MessageBox.Show("确认要删除该抛石信息吗?", "信息提示", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
  {
  //定义删除数据信息的SQL语句
  sql = string.Format(@"delete 抛石信息 from 抛石信息 where 船只编号='{0}'", textBox1.Text.Trim());
  //定义SQL Server连接对象
  System.Data.OleDb.OleDbConnection cons = new OleDbConnection(strFilePath);
  System.Data.OleDb.OleDbCommand cmd = new OleDbCommand(sql, cons);
  try
  {
  cons.Open();
  cmd.ExecuteNonQuery();

  }
  catch { }
  finally
  {
  cons.Close();
  cons.Dispose();
  cmd.Dispose();
  }
  MessageBox.Show("信息删除成功", "信息提示", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
  //刷新数据
  string sqls = "select * from 抛石信息 order by 船只编号";
  System.Data.OleDb.OleDbDataAdapter da1 = new OleDbDataAdapter(sqls, con);
  DataSet dss = new DataSet();
  da1.Fill(dss);
  if (dss.Tables[0].Rows.Count > 0)
  {
  dataGridView1.DataSource = dss.Tables[0];
  }
  }
  }
  }
  }
  catch { }
  }

------解决方案--------------------
SQL语句的问题,断点跟踪一下,很快就能发现错误的。

sql = string.Format(@"delete 抛石信息 from 抛石信息 where 船只编号='{0}'", textBox1.Text.Trim()); //红色多余

==============》改成