在Winform中﹐選中行后﹐按Delete鍵可以刪除該行。現在的問題是﹕如果是不小心刪除的﹐想要取消怎么辦? (在編輯狀態中﹐可能還更改了其它內容﹐并未保存﹐所以不能重新綁定,也不能用DataTable.RejectChanges取消全部的更改)
在Table中RowDeleted事件中﹐我已經用RejectChanges取消了行操作﹐為什么在DataGrid表中還是被刪除了?
在Table中RowDeleted事件中﹐我已經用RejectChanges取消了行操作﹐為什么在DataGrid表中還是被刪除了?
無效~~~
還是被刪除了
myDataSet.Tables("TablesName").DefaultView.AllowDelete = False
myDataSet.Tables("TablesName").DefaultView.AllowEdit = True
myDataSet.Tables("TablesName").DefaultView.AllowNew = False
dGrid.DataSource = myDataSet.Tables("TablesName").DefaultView
给分
Try
mDAdapter = New SqlClient.SqlDataAdapter(sqlStr, SQLConn)
Dim DS As DataSet = New DataSet
mDAdapter.Fill(DS, "TablesName")
' myDataSet = DS.Clone 空表
Catch ex As Exception
MsgBox(ex.Message)
End Try myDataSet.Tables("TablesName").DefaultView.AllowDelete = False
myDataSet.Tables("TablesName").DefaultView.AllowEdit = True
myDataSet.Tables("TablesName").DefaultView.AllowNew = False
dGrid.DataSource = myDataSet.Tables("TablesName").DefaultView
To: ccjerk(岚)
你這樣設﹐我的DataGrid還能編輯嗎?
兄弟,看看題目再回答嗎!
myDataSet.Tables("TablesName").DefaultView.AllowEdit = True
myDataSet.Tables("TablesName").DefaultView.AllowNew = True可以防止按delete键删除。然后在程序中实现数据删除。参考:
private void btnDelete_Click(object sender, System.EventArgs e)
{
string strTemp = "";
DialogResult objResult; strTemp =dgrdCompany[dgrdCompany.CurrentCell.RowNumber,2].ToString().Trim();
if(strTemp == "" || strTemp == null)
{
MessageBox.Show(qpLetter.GetMessageLetter(72));
return;
}
strTemp=qpLetter.GetMessageLetter(53)+"\n"+strTemp;
objResult=MessageBox.Show(strTemp,qpLetter.GetMessageLetter(3),MessageBoxButtons.YesNo);
if(objResult == DialogResult.Yes)
{
m_objDS.Tables["CompanyInfo"].Row[dgrdCompany.CurrentCell.RowNumber].Delete();
}
}private void btnResume_Click(object sender, System.EventArgs e)
{
m_objDS.Tables["CompanyInfo"].RejectChanges();
dgrdCompany_CurrentCellChanged(sender,e);
}