
#region //删除
private void myDataDelete_Click(object sender, EventArgs e)
{
try
{
#region //已选中行
//object myNullKey = null//空行
if (myDataView.SelectedRows.Count != 0)
{
string mySql
object myKey = new object()
//Int32 selectedRowCount = myDataView.Rows.GetRowCount(DataGridViewElementStates.Selected)
//myRow = myDataView.SelectedRows[selectedRowCount]
//前台 *** 作, *** 作的数据来自Excel或添加按钮 *** 作
if ((myDoData == 2)||(myDoData==4))
{
myDataView.AllowUserToAddRows = true//允许前台删除
foreach (DataGridViewRow myRow in myDataView.SelectedRows)
{
myDataView.Rows.Remove(myRow)
}
myDataView.AllowUserToAddRows = false//与添加有关的处理
}
//数据库 *** 作, *** 作的数据来自浏览或搜索(来自数据库)
else
{
try
{
foreach (DataGridViewRow myRow in myDataView.SelectedRows)
{
myKey = myRow.Cells[0].Value
mySql = "delete from TableMain where 序号='" + myKey + "'"
myDataBase.runCommand(mySql)
}
//刷新
if (myDoData == 0)
{
myDataBrowse_Click(sender, e)
}
if (myDoData == 1)
{
string strSql = "select * from TableMain where 序号='" + myTBoxNumSearch.Text.Trim().ToString() + "'"
myDataSet = myDataBase.getDataSet(strSql, "TableMain")
myDataView.DataSource = myDataSet.Tables[0]
}
//
MessageBox.Show("已删除")
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message)
}
finally
{
//MessageBox.Show("删除失败")
myDataBase.closeDataBase()
}
}
}
#endregion
在C#中,如果要删除DataTable中的某一行,大约有以下几种办法:1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行
2,datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。
只是delete掉的效果如下:
在删除DataTable中的行的时候,每删除一行,DataTable中所有行的索引都会发生改变。在循环删除DataTable.Row的时候不能使用foreach。使用foreach进行循环的时候,是不允许Table有删除和添加 *** 作的。
如果是按某列为条件进行删除,则每删完一行,整个Table的index就会立即发生变化,等于Table已经变成了一个新的表。但是索引却已经加1了。于是会造成第一列永远匹配不到。因此,每删除完一行,要跟着判断第一行是否满足删除条件。
我也是遇到了这样的问题,ravedatatext没有属性设置,属性设置是在DataView下面创建的字段控制的。因为你创建的那个TRaveStringField字段是String类型的,因此只能在创建完DataView根据所选的数据表再动态创建字段,我就是在这里over了,不过我考虑还是有一个笨办法:分别创建StringField、IntegerField、folatField等不同类型字段,然后根据数据表中的字段类型分别创建DataView下面的字段。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)