好不容易把插入的问题解决了,但又来一个删除的问题:using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using Wangzhiping;
public partial class test2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        SqlConnection con = DBManager.Instance.getConnection();
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter("select * from aa ", con);
        SqlCommandBuilder sqlcommandbuilder = new SqlCommandBuilder(adapter);
        adapter.Fill(ds);
        DataRow[] rowArr = ds.Tables[0].Select("a_name='1'");
        foreach (DataRow row in rowArr)
        {
            row.Delete();
        }
        adapter.Update(ds);
           }
}页面错误提示:
对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。create table aa
(
 a_name varchar(50)
)

解决方案 »

  1.   

    为什么要这么更新呢,直接在sqlCommand里面用delete语句删除不就行了吗
      

  2.   

    直接在sqlCommand里面用delete语句删除
      

  3.   

    用dataset效率很地,当你遇到大数据量压力测试,肯定不行
      

  4.   

    dataset 效率应比DataReader快把,他是将所有数据在内存中处理完了之后,在一次性地提交给数据库,只不过比较浪费内存而已
      

  5.   

    datareader 只向前读记录,dataset 可以根据需要访问数据 其效率也可想而知
    lz的问题已经很清楚了 对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。 那就给他指定阿 指定主键  数据库的表中指定主键
      

  6.   

    判断一下,如果ds.rows.count<1则不执行下面语句