private void btDel_Click(object sender, System.EventArgs e)
{
            SqlConnection conn=new SqlConnection(myConnectionString);
SqlDataAdapter cmdtblProduct = new SqlDataAdapter("select * from tblProduct", conn);
            DataSet ds=new DataSet();
cmdtblProduct.Fill(ds,"tblProduct");
for(int i=0;i< dgOrder.Items.Count;i++)
{ CheckBox cb=(CheckBox)dgOrder.Items[i].FindControl("chkItem");
if(cb.Checked)
{
ds.Tables["tblProduct"].Rows[i].Delete();
}
}
SqlCommandBuilder cmd=new SqlCommandBuilder(cmdtblProduct);
cmdtblProduct.Update(ds,"tblProduct");  
dgOrder.DataSource=ds.Tables["tblProduct"].DefaultView;
dgOrder.DataBind();
}

解决方案 »

  1.   

    SqlCommandBuilder cmd=new SqlCommandBuilder(cmdtblProduct);
    cmdtblProduct.Update(ds,"tblProduct");
    估计是这里的问题  高手帮忙看看!!报的错误是于不返回任何键列信息的 SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。
      

  2.   

    public void DataGrid_Delete(Object sender,DataGridCommandEventArgs E)
    {
    string strconn=ConfigurationSettings.AppSettings["ConnectionString"];
    SqlConnection cn=new SqlConnection(strconn);
    cn.Open();
    String SqlStr="Delete from T_User where US_ID=@US_ID";
    SqlCommand cm=new SqlCommand(SqlStr,cn);
    cm.Parameters["@US_ID"].Value=DataGrid1.DataKeys[(int)E.Item.ItemIndex];
    try
    {
    cm.ExecuteNonQuery();
    del_note1.Text="删除成功";
    DataGrid1.EditItemIndex=-1;
    }
    catch(SqlException)
    {
    del_note1.Text="删除失败";
    del_note1.Style["color"]="red";
    }
    cn.Close();
    BindGrid();
    }或许有用
      

  3.   

    谢谢 大家 其实我的代码是正确的 数据导入数据库的时候  表的主健没有了 
    所以出现报的错误是于不返回任何键列信息的 SelectCommand 不支持 DeleteCommand 的动态 SQL 生成。结贴