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

winform数据库更新问题
最近接触.net
一遇到更新数据库的问题就实现不了,
虽然没系统学过ADO.net 
然后就被狠狠的羞辱了

哪位大牛帮我看看这段代码为什么更新不了数据库 
提示删除成功 
数据库被没删除

以下是部分代码

private void dGVReceipts_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
  {
  string errMsg = Receipts_Delete(dGVReceipts.SelectedRows[0].Cells[11].Value.ToString());

  MessageBox.Show("删除成功!");
  }

public static string Receipts_Delete(string RecID)
  {
  string ErrorMsg = "";

  ErrorMsg = ExecuteSQL("Delete from Receipts where ID='" + RecID + "'");
  return ErrorMsg;
  }

public static string ExecuteSQL(string SQL)
  {
  string errMsg = "";
  SqlConnection sqlConn = new SqlConnection("Data Source=KCNQHd1458\\TFS_INSTANCE;Initial Catalog=Receipts;User ID=devtest;PWD=test123 ");
  SqlCommand sqlComm = new SqlCommand();
  sqlConn.Open();
  sqlComm.Connection = sqlConn;
  sqlComm.CommandText = SQL;
  try
  {
  sqlComm.ExecuteNonQuery();
  }
  catch (SqlException ex)
  {
  errMsg = ex.Message;
  }

  return errMsg;
  }

  快下班了。晚上我回去看,如果您在指导下子 数据库更新应注意问题 感激不尽

------解决方案--------------------
判断删除成功与否应该看ExecuteNonQuery的返回值是否大于0
------解决方案--------------------
dGVReceipts.SelectedRows[0].Cells[11].Value.ToString()

这个值是什么?

sqlComm.ExecuteNonQuery(); 这里应该是
if( sqlComm.ExecuteNonQuery() == 0 )
{
errMsg = "没有需要删除的数据";
}
------解决方案--------------------
你这个代码,怎么执行都会提示成功,因为你没有判断 errMsg 返回值,而是直接MessageBox.Show("删除成功!");

应该根据errMsg 的值,提示不同的信息
------解决方案--------------------
判断删除成功与否应该看ExecuteNonQuery的返回值是否大于0
------解决方案--------------------
sqlComm.ExecuteNonQuery() 判断它的结构是否大于0