我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable?

解决方案 »

  1.   

    to 我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable如果你是用DataAdapter来通过DataTable更新数据库的话,你可以调用DataTable.AcceptChanges即可;否则需要重新Fill。
      

  2.   

    DataTable myT = (DataTable) dataGridx.DataSource;
    if(myT.Rows.Count<1)
    return;
    string strKey = (string)dataGridx[dataGridx.CurrentCell.RowNumber,0];
    OleDbConnection myConn = new OleDbConnection(GetConnectionString());
    myConn.Open();
    string myTableName = "我的表1";
    OleDbCommand myCom = new OleDbCommand("DELETE FROM " + myTableName + 
    " WHERE 我的索引 = ?", myConn);
    myCom.Parameters.Add("@CustomerID", OleDbType.Char, 5, "CustomerID").Value = strKey;
    try
    {
    myCom.ExecuteNonQuery();
    }
    catch(Exception ex)
    {
    MessageBox.Show(ex.ToString());
    }
    如何同步上面的myT???
      

  3.   

    上面的表通过如下方式填充OleDbConnection myConn = new OleDbConnection(GetConnectionString());
    OleDbDataAdapter custDA = new OleDbDataAdapter();
    custDA.MissingSchemaAction = MissingSchemaAction.AddWithKey;   
    string myTableName = "我的表1";
    string mySelectQuery = "SELECT * FROM " + myTableName;
    custDA.SelectCommand = new OleDbCommand(mySelectQuery, myConn);
    DataTable myT = new DataTable();
    custDA.Fill(myT);dataGridx.DataSource = myT;
      

  4.   

    刷新显示,
    DataTable myT = (DataTable) dataGridx.DataSource
    即可
      

  5.   

    用Command删除哪一行,在DataTable相应的删除,然后调用相应的方法。myT.Rows[?].Delete();
    myT.AcceptChange();
      

  6.   

    只能重新fill,或者你直接在数据集里面删除,然后update
      

  7.   

    操作者要是点击DataGrid的标题后重新排序,DataGrid和DataTable的index就不对应了..用myT.Rows[?].Delete();不行吧
      

  8.   

    重新Fill是什么意思?在删除的后面加上
    custDA.Fill(myT);
    custDA.Update(myT);
      

  9.   

    我想实现的功能是,选中DataGrid的一行后,点击Button把这行删除(显示和数据库更新).
      

  10.   

    不一定要重新Fill
    确定选中的行位置,然后调用该行的Delete方法。
    接着使用DataTable.AcceptChange方法。
      

  11.   

    乱命名的不看...myT 怎么看怎么象 C++模版,仔细一看 MyDataTable,还把Data剩了
      

  12.   

    建议使用DataAdapter.Update(DataTable )来做。