string deleteCmd="delete from tblbooks where BookID like '@bookid'"; cmd=new SqlCommand(deleteCmd,con);
cmd.Parameters.Add(new SqlParameter("@bookid",SqlDbType.Char,10));
cmd.Parameters["@bookid"].Value=this.TxtBookID.Text;
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("删除成功");

}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
cmd.Connection.Close();
}
this.TxtBookID.Text="";
this.TxtBookName.Text="";
this.TxtBookState.Text="";
}
这是在删除按钮里面执行的,提示删除成功,但是数据库里面还有,为什么啊,怎么修改一下呢?

解决方案 »

  1.   

    string deleteCmd="delete from tblbooks where BookID like @bookid"; 
    把单引号去掉试试
      

  2.   

    另外最好再ExecuteNonQuery()方法执行完后返回它的受影响行数以确定是否删除成功
    int result = cmd.ExecuteNonQuery(); 
    if(result > 0)
        MessageBox.Show("删除成功");
    else
        MessageBox.Show("删除失败");
      

  3.   

    like 好象不能用参数来实现的.
      

  4.   

    string deleteCmd = "delete from tblbooks where BookID like @bookid"; 
    cmd = new SqlCommand(deleteCmd,con); 
    cmd.Parameters.AddWithValue("@bookid", "%" + TxtBookID.Text + "%" );