以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]将数据删除时添加到历史库的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=67005) |
|
-- 作者:jwt -- 发布时间:2015/4/17 12:26:00 -- [求助]将数据删除时添加到历史库的问题 我菜单里有个删除按钮,点击删除的时候,会提示是否删除,如果点击是,那么,判断此行的“备注”列是否为空,如果是,则提示,“请在备注列输入删除原因”,如果非空,则将此列数据添加到另一个表“历史库”里,然后删除数据,我的代码如下,但是后期的不会写了,老是提示DataRow不属于按钮属性啥子的,求大神指点。 If _username = "01人力资源部" Then Dim Result As DialogResult Result = Messagebox.Show("有些东西一旦失去了便再也无法挽回 , 三思而后行 ! ","温馨提示", MessageBoxButtons.YesNo, MessageBoxIcon.warning) If Result = DialogResult.Yes Then If CurrentTable.DataRow.IsNull("备注") Then Messagebox.Show("请在备注列输入删除原因","提示") else Dim dr As DataRow = DataTables("历史库").AddNew For Each dc As DataCol In DataTables("历史库").DataCols dr(dc.Name) = e.DataRow(dc.Name) Next CurrentTable.Current.Delete() MessageBox.Show("已成功删除至历史库!", "提示") |
|
-- 作者:Bin -- 发布时间:2015/4/17 13:37:00 -- If _username = "01人力资源部" Then Dim Result As DialogResult Result = Messagebox.Show("有些东西一旦失去了便再也无法挽回 , 三思而后行 ! ","温馨提示", MessageBoxButtons.YesNo, MessageBoxIcon.warning) If Result = DialogResult.Yes Then If CurrentTable.Current.IsNull("备注") Then Messagebox.Show("请在备注列输入删除原因","提示") else Dim dr As DataRow = DataTables("历史库").AddNew For Each dc As DataCol In DataTables("历史库").DataCols dr(dc.Name) =CurrentTable.Current(dc.Name) Next CurrentTable.Current.Delete() MessageBox.Show("已成功删除至历史库!", "提示")
|
|
-- 作者:jwt -- 发布时间:2015/4/17 14:05:00 -- 还想继续优化 因为我系统里有多个表,用这种方法的话,必须去表里找对应的每个列名,列明不对应的话还操作不成功。麻烦,我就想直接把数据弄过去,这个代码还可以优化吗??求指点 Dim dr As DataRow = DataTables("历史库").AddNew For Each dc As DataCol In DataTables("历史库").DataCols dr(dc.Name) = e.DataRow(dc.Name) |
|
-- 作者:Bin -- 发布时间:2015/4/17 14:06:00 -- 没看明白你的意思,你的代码本来就是遍历列名 不用手动输入 |
|
-- 作者:jwt -- 发布时间:2015/4/17 14:06:00 -- 以下是引用Bin在2015/4/17 13:37:00的发言:
If _username = "01人力资源部" Then Dim Result As DialogResult Result = Messagebox.Show("有些东西一旦失去了便再也无法挽回 , 三思而后行 ! ","温馨提示", MessageBoxButtons.YesNo, MessageBoxIcon.warning) If Result = DialogResult.Yes Then If CurrentTable.Current.IsNull("备注") Then Messagebox.Show("请在备注列输入删除原因","提示") else Dim dr As DataRow = DataTables("历史库").AddNew For Each dc As DataCol In DataTables("历史库").DataCols dr(dc.Name) =CurrentTable.Current(dc.Name) Next CurrentTable.Current.Delete() MessageBox.Show("已成功删除至历史库!", "提示") 我还想继续优化一下~~
|
|
-- 作者:Bin -- 发布时间:2015/4/17 14:07:00 -- 表结构不一样,那肯定不成功. 没有办法优化. 优化最多是判断一下结构不一样就不导入 |
|
-- 作者:jwt -- 发布时间:2015/4/17 14:08:00 -- 情况说明 我的意思是我的系统里有很多表,每个表的列明不一样啊,如果我用这种方法的话,那么我历史库里的表的列就得包含多有表里的列,好麻烦的说,能不能就直接干脆的加载到历史库了,不用查找列名 |
|
-- 作者:Bin -- 发布时间:2015/4/17 14:08:00 -- 不行 |
|
-- 作者:jwt -- 发布时间:2015/4/17 14:08:00 -- 哦哦,好的,谢谢,那我就把所有的列明都弄进去吧~~谢谢 |
|
-- 作者:jwt -- 发布时间:2015/4/17 14:30:00 -- 解决办法 大神,判断结构不一样就不写入的代码是???可不可以这样,列名一样的写入,列名不一样的直接跳过不写入~ |