-- 作者:雨中的泪
-- 发布时间:2010/8/13 20:28:00
-- 加密与解密的问题!!!谢谢
Dim dlg As New SaveFileDialog \'指定一个新的SaveFileDialog dlg.Filter= "上报文件|*.DSB" \'设置筛选器 dlg. title= "生成上报文件" dlg.OverwritePrompt = False If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 If FileSys.FileExists(dlg.filename) Then \'如果指定的文件存在 If Messagebox.Show("有同名文件存在,是否删除?", "提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then FileSys.DeleteFile(dlg.filename,2,2) \'则彻底删除之 Else Return End If End If Dim ex As New Exporter ex.SourceTableName = "调资基础数据" \'指定导出表 ex.Format = "Access" \'指定导出文件格式 ex. PassWord = "TZX_GWY_JT_8888" \'用此属性指定目标文件的密码 ex.filepath = dlg.filename \'指定目标文件 ex.NewTableName = "调资基础数据" \'指定导出后的表的名称 ex.Export() \'开始导出数据 FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) EncryptFile(dlg.filename & ".bak", dlg.filename, "88881") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) MessageBox.Show("上报数据生成完成!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information) End If
|
-- 作者:雨中的泪
-- 发布时间:2010/8/13 20:30:00
--
用上述代码生成后缀名为DSB的上报文件~~~!!!
然后后缀名改为DBF,然后用以下代码,恢复!!!
If MessageBox.Show( "恢复数据库操作将清空数据库,确定是否清空?","提示",MessageBoxButtons. YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then DataTables("调资基础数据").DataRows.Clear() \'清空指定表数据 Else Return \'点击否终止代码的执行 End If Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "备份文件|*.DBF" \'设置筛选器 dlg. title= "数据恢复" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) DecryptFile (dlg.filename & ".bak", dlg.filename, "8888") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) Dim ip As New Merger ip.SourcePath = dlg.filename \'指定数据文件 ip.SourceTableName = "调资基础数据" \'指定要合并的表 ip.Format = "Access" \'指定合并文件格式 ip. PassWord = "TZX_GWY_JT_8888" \'用此属性指定合并文件的密码 ip.Fields = "单位名称" \' 指定要合并的字段(列) ip. DataTableName ="数据接收临时判断" \'合并后的表名 ip. Merge() \'开始合并 Dim dws As List(Of String) \'定义一个字符型数组集合 dws = DataTables("调资基础数据").GetUniqueValues("", "单位名称") \'列出所有单位 For Each dw As String In dws \'逐个单位判断 Dim dr As DataRow = DataTables("数据接收临时判断").find("[单位名称] = \'" & dw & "\'") If dr IsNot Nothing Then If MessageBox.Show( dw & "的记录已经存在,确定是否请删除?","提示",MessageBoxButtons. YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then DataTables("调资基础数据").DeleteFor("[单位名称] = \'" & dw & "\'") Else FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) EncryptFile(dlg.filename & ".bak", dlg.filename, "8888") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) Return \'点击否终止代码的执行 End If End If Next Dim mg As New Merger mg.SourcePath = dlg.filename mg.SourceTableName = "调资基础数据" mg.Format = "Access" mg. PassWord = "TZX_GWY_JT_8888" mg.DataTableName = "调资基础数据" mg.Merge() MessageBox.Show("数据恢复完成!!!","提示",MessageBoxButtons.OK,MessageBoxIcon.Question) DataTables("数据接收临时判断").DataRows.Clear() \'清空指定表数据 FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) EncryptFile(dlg.filename & ".bak", dlg.filename, "8888") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) Else MessageBox.Show( "数据库已被清空!!!","提示",MessageBoxButtons. OK,MessageBoxIcon.Warning) End If
|
-- 作者:雨中的泪
-- 发布时间:2010/8/13 20:32:00
--
提示不可识别的文件格式!!!
文件后缀名再改为DSB后,用以下接收代码接收:
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog dlg.Filter= "上报文件|*.DSB" \'设置筛选器 dlg. title= "接收上报文件" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) DecryptFile (dlg.filename & ".bak", dlg.filename, "88881") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) Dim ip As New Merger ip.SourcePath = dlg.filename \'指定数据文件 ip.SourceTableName = "调资基础数据" \'指定要合并的表 ip.Format = "Access" \'指定合并文件格式 ip. PassWord = "TZX_GWY_JT_8888" \'用此属性指定合并文件的密码 ip.Fields = "单位名称" \' 指定要合并的字段(列) ip. DataTableName ="数据接收临时判断" \'合并后的表名 ip. Merge() \'开始合并 Dim dws As List(Of String) \'定义一个字符型数组集合 dws = DataTables("调资基础数据").GetUniqueValues("", "单位名称") \'列出所有单位 For Each dw As String In dws \'逐个单位判断 Dim dr As DataRow = DataTables("数据接收临时判断").find("[单位名称] = \'" & dw & "\'") If dr IsNot Nothing Then If MessageBox.Show( dw & "的记录已经存在,确定是否请删除?","提示",MessageBoxButtons. YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then DataTables("调资基础数据").DeleteFor("[单位名称] = \'" & dw & "\'") Else FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) EncryptFile(dlg.filename & ".bak", dlg.filename, "88881") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) Return \'点击否终止代码的执行 End If End If Next Dim mg As New Merger mg.SourcePath = dlg.filename mg.SourceTableName = "调资基础数据" mg.Format = "Access" mg. PassWord = "TZX_GWY_JT_8888" mg.DataTableName = "调资基础数据" mg.Merge() MessageBox.Show("接收上报数据完成!!!","提示",MessageBoxButtons.OK,MessageBoxIcon.Question) DataTables("数据接收临时判断").DataRows.Clear() \'清空指定表数据 FileSys.CopyFile(dlg.filename, dlg.filename & ".bak",False) FileSys.DeleteFile(dlg.filename, 2, 2) EncryptFile(dlg.filename & ".bak", dlg.filename, "88881") FileSys.DeleteFile(dlg.filename & ".bak", 2, 2) End If
还是不可识别的文件格式!!!
如何处理?谢谢
|