以下两个程序分别要完成access 的更新与删除问题功能.但是它们不能完成相应的功能,又没有报错,请各位帮忙看看.删除程序
private void Button1_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 NO='119'";                      //?

  
OleDbCommand cmd=new OleDbCommand(sql,conn);
conn.Open(); 
cmd.ExecuteReader();
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();  
}
更新程序
private void Button1_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="UPDATE  table1 SET AGE='11111' WHERE NO='112'";        //?
OleDbCommand cmd=new OleDbCommand(sql,conn);
conn.Open(); 
cmd.ExecuteReader();
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.   

    conn.Open();
    cmd.ExecuteNonQuery()
    conn.Close();
      

  2.   

    删除的:
    conn.Open(); 
    cmd.ExecuteReader(); 
    conn.Close(); 
    你这是读取数据的,用cmd.ExecuteNonQuery()吧!
    更新的也是一样。
      

  3.   

    你查一下OleDbCommand 这个类,你就会了解什么时候该用什么方法了。
      

  4.   

    删除程序 
    private void Button1_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 NO='119'";                      //?   
    OleDbCommand cmd=new OleDbCommand(sql,conn); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
    conn.Close(); coon.Open(); 
    string sql2="select * from table1"; 
    OleDbDataAdapter da=new OleDbDataAdapter(sql2,conn); 
    DataSet ds=new DataSet(); 
    da.Fill(ds);
    this.DataGrid2.DataSource=ds;
    this.DataGrid2.DataBind(); 
    conn.Close();  

    更新程序 
    private void Button1_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="UPDATE  table1 SET AGE='11111' WHERE NO='112'";        //? 
    OleDbCommand cmd=new OleDbCommand(sql,conn); 
    conn.Open(); 
    cmd.ExecuteNonQuery();  
    conn.Close(); conn.Open();  
    string sql2="select * from table1"; 
    OleDbDataAdapter da=new OleDbDataAdapter(sql2,conn); 
    DataSet ds=new DataSet(); 
    da.Fill(ds);
    this.DataGrid2.DataSource=ds;
    this.DataGrid2.DataBind(); 
    conn.Close();  

    正确的删除,修改...
      

  5.   

    我已经按你的方法做了,但还是不行,你帮忙看看吧.
    private void Button1_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="select * from table1 where age="+TextBox1.Text+"";
    string sql="DELETE from table1 where NO='"+TextBox1.Text+"'";                      //?

       
    OleDbCommand cmd=new OleDbCommand(sql,conn); conn.Open(); 
    cmd.ExecuteNonQuery();
    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();
    } 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  insertstr="INSERT   INTO  table1([NAME],[no],[age])  values ('他','569','100')";  //对
    string  insertstr="INSERT   INTO  table1([NAME],[no],[age])  values ( '"+TextBox2.Text+"','"+TextBox3.Text+"','"+TextBox4.Text+"')";
    OleDbCommand cmd=new OleDbCommand(insertstr,conn);

    conn.Open();  
    cmd.ExecuteReader();
    conn.Close(); string sql="select * from table1";
    OleDbCommand cmd1=new OleDbCommand(sql,conn);
    conn.Open();  
    this.DataGrid2.DataSource=cmd1.ExecuteReader();
    this.DataGrid2.DataBind();   
    conn.Close(); 
    } private void Button3_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="select * from table1 where age="+TextBox1.Text+"";


    string sql="UPDATE  table1 SET AGE='11111' WHERE NO='112'";        //?
    OleDbCommand cmd=new OleDbCommand(sql,conn); conn.Open(); 
    cmd.ExecuteNonQuery();
    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();  
    }
      

  6.   

    是否NTFS格式,确保有修改 db1.mdb 的权限。
      

  7.   

    看看文件夹的权限,设置为everyone。或把磁盘格式改下。
      

  8.   

    是FAT32格式的分区,所不不会存在权限的问题.
    删除和更新既没有报错,也没有达到操作的目标,不过插入能正确地完成任务.
    要不你们把上面的代码拷下来到自己的机上试试,如果能的说一声.
      

  9.   

    ..可以换个方法写写呀..BindingSource
      

  10.   

    删除程序 
    private void Button1_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 NO='119'";//NO字段是什么类型?若是整形,要改成NO=119。   
    OleDbCommand cmd=new OleDbCommand(sql,conn); 
    conn.Open(); 
    cmd.ExecuteReader(); 
    conn.Close(); //conn.Close();  //不用关两次
    string sql2="select * from table1"; 
    //OleDbCommand cmd2=new OleDbCommand(sql2,conn); //应改用OleDbDataAdapter
    //conn.Open(); //用OleDbDataAdapter的话就不用Open
    OleDbDataAdapter da=new OleDbDataAdapter(sql2,conn);
    DataSet ds=new DataSet();
    da.Fill(ds); 
    //this.DataGrid2.DataSource=cmd2.ExecuteReader(); 
    this.DataGrid2.DataSource=ds.Tables[0];
    this.DataGrid2.DataBind(); 
    //conn.Close();