功能很简单,从脚本文件,一行行读取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 }
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();
2 SELECT NEWID();
3 SELECT GETDATE();
运行效果如下:
代码就不提供下载了,需要的朋友,麻烦您自己复制粘贴一下,刚学习入门的朋友,也可以参考一下,蛮实用的一个功能。
数据库访问组件的源码,请从下面的连接下载。
本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/448246,如需转载请自行联系原作者