Added:表示行已添加到DataRowCollection,尚未调用DataTable.AcceptChange()
Modified:表示行已被修改,尚未调用DataTable.AcceptChange()
Deleted:表示行已被删除,
Unchanged:自上次调用AcceptChange()之后没有更改的行.
Detached:行虽然创建,但没有放到DataRowCollection中.
有时候,要获取到客户端表格的删除行,然后再提交到数据库更新.但是如果直接这样访问:
DataTable dtDeleted = dt.GetChanges(DataRowState.Deleted)
string id=dtDeleted.Rows[0]["id"].ToString()
会出现DeletedRowInaccessibleException异常:不能通过已删除的行访问该行的信息.
怎么办呢?其实可以Rows的另一个重载索引器来访问:
string id=dtDeleted.Rows[0]["id",DataRowVersion.Original].ToString()
DataRowVersion.Original表示的是该行的原始值
1 找个别的机器安装个同版本的mysql或从已安装同版本的其他机器上(非同版本的也可以试下):拷贝 mysql/data/mysql 目录到你的mysql/data/ 下吧
2 试着启动mysql服务,如果能启动了,理论上应该丢失的只有用户、授权等一些系统信息,不影响你的使用的数据;
如果不能启动,看错误日志,争取启动了。
3 赶紧把数据备份一份出来,重新把所有库(只是你后来创建的业务相关的库,不包括mysql库)都删了,重新导入一遍。理论上不这样也可以,但只是非生产重要的环境下。
4 重新做用户授权。
1、我们可以在窗体页面上添加ContextMenuStrip快捷菜单。
2、然后我们就能就能在删除行这个子项中编写删除事件代码。
3、此时我们我们就能调用DataGridView的Rows属性。
4、然后引用rowIndex属性即可获得行下标。
5、此时我们就能通过获取到Rows行下标的IsNewRow属性判断是否被选中。
6、如果被选中了,我们就能利用DataGridView对象的事件e的rowIndex属性删除。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)