通过dataview用datagrid显示记录,
用dataview过滤后,怎么删除在数据库里面的记录
(选定在datagrid里面的记录)??

解决方案 »

  1.   

    可以直接在dataGrid里增删改记录的
    string sqlstr="select * from employees";
    myDa=new SqlDataAdapter(sqlstr,cn);
    SqlCommandBuilder cb=new SqlCommandBuilder(myDa);
    ds=new DataSet();
    myDa.Fill(ds,"record");
    dataGrid1.SetDataBinding(ds,"record");删除时只需要执行如下语句:
    if (ds.HasChanges())
    {
       DataSet dsChange=ds.GetChanges();
       myDa.Update(dsChange,"record");
    }
      

  2.   

    我要选中DataGrid中的一条记录删除
    ds.HasChanges()应该没反映吧
    现在是想知道DataGrid中的一条记录怎么和DataSet里的记录一一对应?
    应该DataView过滤后dataGrid的CurrentRowIndex已经不合Dataset中的Row[]
    一一对应了
      

  3.   

    你是要选中一条马上就删了?????要做并不难,DataGrid中有个ItemCommand事件, 你只要在模版列中套入个Button或LinkButton什么的然后再设个CommandName,然后在后台页面中捕获这个事件就行了.
    然后是删是改就随你了……那要是选错了呢?
      

  4.   

    很简单,只要让DATASET同步,DG上的那行自动就删了.
      

  5.   

    datagrid.IsSelected(datagrid.CurrentRowIndex)
    然后你把 表中的主键取出来    执行SQL语句删除     不要直接用dataset或dataview的Update()
      

  6.   

    /// <summary>
    /// 学生注册处理
    /// </summary>
    private void Register()
    {
    DialogResult result;
    string errmsg = string.Empty;
    bool b = false;
    string id;
    string xq;
    string zczk;
    string sql;
    int count = 0;//记录注册总人数 result = MessageBox.Show("真的要注册吗?", "提示信息",
    MessageBoxButtons.OKCancel,MessageBoxIcon.Question); 
    if(result != DialogResult.OK)
    return; //数据检查
    if(CheckData() == true)
    return; //结束当前编辑
    this.dataGrid1.BindingContext[dataGrid1.DataSource].EndCurrentEdit(); 
    dataGrid1.BindingContext = new BindingContext(); for(int i = 0; i < table.Rows.Count; i++)
    {
    id = table.Rows[i]["ID"].ToString();//学生编号
    xq = table.Rows[i]["XQ"].ToString();//学期

    if ((bool)(table.Rows[i]["IsSelected"])==true)
    {

    zczk = table.Rows[i]["ZCZK"].ToString();
    if(zczk == "未注册")
    {
    count = count + 1;
    sql = "Update XSZC set ZCZK = '1' where ID = '"+id+"' and XQ = '"+xq+"' ";
    try
    {
    DbHelper.ExecuteSql(sql);
    }
    catch(System.Data.SqlClient.SqlException err)
    {
    b = true;
    errmsg = "注册失败,失败原因:" + err.Message;
    }
    }
    }
    } if(b == true)
    {
    MessageBox.Show(errmsg);
    }
    else
    {
    if(count>0)
    {
    InitDataGrid();
    MessageBox.Show("学生注册成功!注册总人数:" +count +"人。");
    }
    else
    {
    MessageBox.Show("没有未注册的学生或者未选择未注册的学生。");
    }
    } }