以下是一道本人昨天的考试题:
在Web程序中完成Access数据库的删除功能,并在完成删除后弹出对话框提示删除成功。
删除语句我写出来了,就是不知怎么判断数据已被删除。
请问各位:怎么判断数据已被删除?
private void Button2_Click(object sender, System.EventArgs e)
{

string connString=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Server.MapPath(@".\db1.mdb"); 
OleDbConnection conn=new OleDbConnection(connString);  string sql="DELETE from table1 where id="+TextBox1.Text+"";                      //?   
OleDbCommand cmd=new OleDbCommand(sql,conn); 
conn.Open(); 
cmd.ExecuteNonQuery(); 
conn.Close();  conn.Close();  
string sql2="select * from table1"; 
OleDbCommand cmd2=new OleDbCommand(sql2,conn); 
conn.Open();  
this.DataGrid2.DataSource=cmd2.ExecuteReader(); 
this.DataGrid2.DataBind(); 
conn.Close();   }

解决方案 »

  1.   


    try
    {
        OleDbCommand cmd=new OleDbCommand(sql,conn); 
        conn.Open(); 
        cmd.ExecuteNonQuery(); 
    }
    catch(Exception ex)
    {
       MessageBox.Show(ex.Message);
    }
    finally
    {
        conn.Close(); }如果没有删除成功,一定会报错的。MessageBox.Show(ex.Message)会报出异常情况,如果没有报错就表示一定删除成功了。
      

  2.   

    cmd.ExecuteNonQuery(); 返回值就是SQL语句影响到额行数啊!
    int i=conver.toint32( cmd.ExecuteNonQuery()); 如果i>0则删除成功,否则失败!
      

  3.   

       lou shang hao banfa a 
      

  4.   

    int i =cmd.ExecuteNonQuery();i就是你删除的几个数据
      

  5.   

    一般我都是用Try来做!!在Catch里写错误提示代码!
      

  6.   

    小弟按你的提示没有得到正确的结果,还请你指点一下。                           conn.Open(); 
    cmd.ExecuteNonQuery(); 
    int i=Convert.ToInt32(cmd.ExecuteNonQuery());
    if(i>0)
    TextBox7.Text="成功";

    else 
    TextBox7.Text="删除未成功"; conn.Close(); 
    我遇到两个问题:
    1。不知道MessageBox在WEB程序中用何种命名空间(所以我用了一个TextBox代替)
    2。以上程序无论删除是否成功,它都会说删除未成功。
      

  7.   

    你确定数据库中有你要删除的数据,
    而且最好if和else的方法都加上{}。
    最后web没有MessageBox,可以用脚本来弹。
      

  8.   

    当我要删除一个数据库里根本不存在的数据时,提示删除未成功,
    删除一个数据库里有的数据时,实际上已经成功了,但它还是提示删除未成功。
    还有就是本人还是菜鸟,不知怎么跟怎么跟代码。
    所以我用了下面这个方法
                               if(i>0)
    {TextBox7.Text=i.ToString()+"成功";}

    else 
    {TextBox7.Text=i.ToString()+"删除未成功";}
    结果得到的i值无论实际上删除是否成功都是0