天天看点

给朋友写了一个从脚本文件逐行加载执行SQL语句的程序,现在分享给将来需要的朋友们参考

功能很简单,从脚本文件,一行行读取SQL语句,然后执行。

代码如下: 

代码

 1 //------------------------------------------------------------

 2 // All Rights Reserved , Copyright (C) 2009 , Jirisoft , Ltd. 

 3 //------------------------------------------------------------

 4 

 5 using System;

 6 using System.Collections.Generic;

 7 using System.Web;

 8 using System.Web.UI;

 9 using System.Web.UI.WebControls;

10 using System.Configuration;

11 using System.Web.Security;

12 using System.IO;

13 using System.Data;

14 

15 namespace JiriSoft.Permission

16 {

17     using DotNet.Common;

18     using DotNet.Common.Utilities;

19     using DotNet.Common.DbUtilities;

20     using DotNet.Common.Model;

21     using DotNet.Common.Business;

22     using DotNet.Common.Service;

23 

24     /// <remarks>

25     /// LoadSqlScript

26     /// 

27     /// 修改纪录

28     /// 

29     ///    版本:1.0 2009.12.17    JiRiGaLa    创建。

30     ///    

31     /// 版本:1.0

32     /// <author>

33     ///        <name>JiRiGaLa</name>

34     ///        <date>2009.12.17</date>

35     /// </author> 

36     /// </remarks>

37     public partial class LoadSqlScript : System.Web.UI.Page

38     {

39         protected void Page_Load(object sender, EventArgs e)

40         {

41             // 执行脚本

42             this.ExecuteSql();

43         }

44 

45         /// <summary>

46         /// 执行数据库脚本

47         /// </summary>

48         private void ExecuteSql()

49         {

50             // 通过接口定义,打开一个数据库

51             IDbHelper dbHelper = new SqlHelper();

52             // 按指定的数据库连接串,打开数据库连接

53             dbHelper.Open("Data Source=JIRIGALA-PC\\SQLEXPRESS;Initial Catalog=DataCenter;Integrated Security=SSPI;");

54 

55             // 读取指定的脚本文件

56             StreamReader streamReader = new StreamReader(Server.MapPath("Script.sql"));

57             String sqlQuery = String.Empty;

58             // 循环读取文本文件

59             while (sqlQuery != null)

60             {

61                 sqlQuery = streamReader.ReadLine();

62                 if (sqlQuery != null)

63                 {

64                     // 执行数据库查询语句

65                     this.ExecuteSql(dbHelper, sqlQuery);

66                 }

67             }

68             // 关闭文件流

69             streamReader.Close();

70             // 关闭数据库连接

71             dbHelper.Close();

72         }

73 

74         /// <summary>

75         /// 执行SQL语句

76         /// </summary>

77         /// <param name="dbHelper">数据库连接</param>

78         /// <param name="sql">查询语句</param>

79         private void ExecuteSql(IDbHelper dbHelper, String sqlQuery)

80         {

81             String returnValue = dbHelper.ExecuteScalar(sqlQuery).ToString();

82             // 显示执行的SQL语句

83             Page.Response.Write("sqlQuery:" + sqlQuery + "<br>");

84             // 显示执行的返回值

85             Page.Response.Write(returnValue + "<br><br><br>");

86         }

87     }

88 }

脚本文件如下:

1 SELECT MAX(id) FROM BASE_USER;

2 SELECT NEWID();

3 SELECT GETDATE();

运行效果如下:

代码就不提供下载了,需要的朋友,麻烦您自己复制粘贴一下,刚学习入门的朋友,也可以参考一下,蛮实用的一个功能。

数据库访问组件的源码,请从下面的连接下载。

本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/448246,如需转载请自行联系原作者