2022年用C#程序备份和还原数据库 .pdf

上传人:Q****o 文档编号:26178754 上传时间:2022-07-16 格式:PDF 页数:14 大小:78.52KB
返回 下载 相关 举报
2022年用C#程序备份和还原数据库 .pdf_第1页
第1页 / 共14页
2022年用C#程序备份和还原数据库 .pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《2022年用C#程序备份和还原数据库 .pdf》由会员分享,可在线阅读,更多相关《2022年用C#程序备份和还原数据库 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 目录一、在文本框中实现光标定位 2二、用键盘操作控件的事件 3三、重启服务 4四、文件操作(命名空间:System.IO) 51、判断文件夹是否存在 52、判断文件是否已存在 53、选择文件保存位置 54、打开一个文件 65、读取记事本中文件内容 66、创建一个记事本文件并向其中添加内容 6五、用 C#语言对 SQL Server2008数据库进行操作(命名空间:System.Data.SqlClient ) 71、连接数据库 72、查询信息 93、曾删改数据 104、打印数据 115、备份数据 126、还原数据库数据 13名师资料总结 - - -精品资料欢迎下载 - - - - - -

2、- - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 2 一、在文本框中实现光标定位方法一:/首先让文本框获得焦点this.txtBox.Focus(); /设置光标的位置到文本尾this.txtBox.Select(this.txtBox.TextLength,0); /滚动条滚动到控件光标处this.txtBox.ScrollToCaret(); 方法二:/获得焦点this.txtBox.Focus(); /设置光标的位置到文本尾this.txtBox.SelectionStart = thi

3、s.txtBox.TextLength; /滚动条滚动到控件光标处this.txtBox.ScrollToCaret(); 总结:使用本方法可以实现光标任意位置的定位,其中方法一还可以实现“ 查找与替换 ” 的功能。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 3 二、用键盘操作控件的事件键盘事件有以下三种:keypress(按下并释放控件所触发),keydown(按下控件触发 ),keyup(松开控件触发 )由于键盘事件必

4、须要获得焦点,所以不应该直接把键盘事件写在按钮上面,而应该写在Form 上面,如下是一个举例:private void Form1_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = 1) button1_Click(sender,e); 这样在运行窗体后每次按数字1都会触发 button1的单击事件。 (注意:必须把窗体的KeyPreview属性设置为 true)总结:由此可以使用键盘操作其他控件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理

5、- - - - - - - 第 3 页,共 14 页 - - - - - - - - - 4 三、重启服务#region 重启服务/ / 重启服务 (操作服务需要添加 System.ServiceProcess 引用并导入包 System.ServiceProcess )/ / 服务名 / 重启异常信息 private string RestartService( string serveName) /操作服务对象 ServiceController sc = new ServiceController (serveName); /停止服务try sc.Refresh();/刷新属性值 |if

6、 (sc.Status = ServiceControllerStatus.Running) sc.Stop(); /设置等待时间为秒TimeSpan ts = new TimeSpan(0, 0, 30); /等待服务到达停止状态sc.WaitForStatus(ServiceControllerStatus.Stopped, ts); /重新开启服务sc.Refresh();/刷新属性值 |if (sc.Status = ServiceControllerStatus.Stopped) sc.Start(); /等待服务到达运行状态sc.WaitForStatus(ServiceContr

7、ollerStatus.Running, ts); return string.Empty; catch (Exception e) return 重启服务出现异常 + e.Message; #endregion 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 5 四、文件操作(命名空间:System.IO)1、判断文件夹是否存在bool a= Directory.Exists(D:QQ2010Bin ); 2、判断文件是否已

8、存在File.Exists(D:QQ2010Binqq.exe ) 3、选择文件保存位置/文件保存位置对象SaveFileDialog sf = new SaveFileDialog(); /设置默认文件名sf.FileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() ; /设置文件筛选字符串sf.Filter = *.mdb|*.mdb|*.bak|*.bak|*.*|*.*; /打开文件选择对话框if (sf.ShowDialog() = Dia

9、logResult.OK) /文件保存路径string path= sf.FileName; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 6 4、打开一个文件/源文件位置对象OpenFileDialog of = newOpenFileDialog(); /文件筛字符串of.Filter = *.mdb|*.mdb|*.bak|*.bak|*.*|*.*; /打开文件选择对话框if (of.ShowDialog() = D

10、ialogResult.OK) /源文件路径string path = of.FileName; 5、读取记事本中文件内容File.ReadAllText( 文件路径 , Encoding.GetEncoding(gb2312 ); 6、创建一个记事本文件并向其中添加内容File.WriteAllText( 文件路径 ,要写入的字符串 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 7 五、用 C#语言对 SQL Ser

11、ver2008 数据库进行操作(命名空间: System.Data.SqlClient)1、连接数据库/连接字符串conststring _sqlString = Data Source=.;Initial Catalog=Library; Integrated Security=True; /连接对象SqlConnection _conn = newSqlConnection(_sqlString); / / 打开数据库连接/ public void connOpen() if (_conn.State = ConnectionState .Closed) _conn.Open(); 名师资

12、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 14 页 - - - - - - - - - 8 elseif (_conn.State = ConnectionState .Broken) _conn.Close(); _conn.Open(); private SqlCommand _command; / / SqlCommand属性/ public SqlCommand Command get if (_command = null) _command = new Sql

13、Command(); _command.Connection = _conn; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 9 return _command; 2、查询信息/ / 查询信息,返回异常信息/ / SQL查询语句 / 查询的结果表 / 异常信息 public string SelectInFo(string sqlStr, DataTable table) string message = string.Em

14、pty; Command.CommandText = sqlStr; da.SelectCommand = Command; try da.Fill(table); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - 10 catch (Exception e) message = e.Message; return message; 3、曾删改数据/ / 执行曾删改的方法;返回受影响的行数/ / SQL操作语句 / 异常信息 /

15、 受影响的行数 public int UpdateoInfo(string sqlStr, outstring message) message = string.Empty; Command.CommandText = sqlStr; int item = 0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 14 页 - - - - - - - - - 11 try connOpen(); item = Command.ExecuteNonQuery(); catc

16、h (Exception e) message = e.Message; ; finally _conn.Close(); return item; 4、打印数据/ / 打印数据/ / DataTable数据表 public void Print(DataTable table) /选择文件对话框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 14 页 - - - - - - - - - 12 SaveFileDialog sf = new SaveFileDialog

17、(); sf.Filter = excel文件 |*.xls ; if (sf.ShowDialog() = DialogResult .OK) FileStream fs = File.Open(sf.FileName, FileMode .Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs, Encoding.GetEncoding(gb2312); string line = ; foreach (DataGridViewColumn dvc in table.Columns) line += dvc.Head

18、erText + t ; sw.WriteLine(line); foreach (DataGridViewRow dr in table.Rows) line = ; foreach (DataGridViewCell dc in dr.Cells) line += dc.Value + t ; sw.WriteLine(line); sw.Close(); fs.Close(); 5、备份数据/ / 数据备份/ / 备份路径 / 处理信息 public string Backup(string path) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

19、 - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 14 页 - - - - - - - - - 13 /处理信息string message; /SQL备份语句string sqlStr = string.Format(backup database Library to disk=0 with init , path); /执行 SQL语句_db.UpdateoInfo(sqlStr, out message); if (message = string.Empty) message = 备份成功 ; return message; 6、还原数据库数据

20、/ / 还原数据库数据/ / / 异常信息 public string DataBaseRestore( string path) /还原结果string result = string.Empty; /调用重新启动服务的方法RestartService(mssqlserver); /限制用户只能逐个访问数据库string sqlStr1 = ALTER DATABASE Library SET SINGLE_USER ; /_db.UpdateoInfo(sqlStr1); /还原数据result = Restore(path); /将数据库的访问权限返回其一般运行状态string sqlS

21、tr2 = ALTER DATABASE Library SET MULTI_USER; _db.UpdateoInfo(sqlStr2); return result; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 14 / / 还原数据方法/ / 源文件路径 / 异常信息 private string Restore( string path) /SQL数据还原语句StringBuilder sb = new Stri

22、ngBuilder(); sb.AppendLine( use master alter database library set online with rollback immediate); sb.AppendFormat(restore database library from disk=0 with replace , path); sb.AppendLine( alter database library set online with rollback immediate ); /创建 Sqlcommand对象string result = sb.ToString(); /异常信息string message; _db.UpdateoInfo(result, out message); return message; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁