天天看點

給朋友寫了一個從腳本檔案逐行加載執行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,如需轉載請自行聯系原作者