给朋友写了一个从脚本文件逐行加载执行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();

 

 

运行效果如下:

 

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

 

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

 

B: 走火入魔系统架构导读
大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(零)数据库访问层 

 

 

导读:
疯狂.NET架构通用权限后台管理工具演示版2.0下载
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 如何控制用户显示的菜单权限
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 在页面中的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 数据集权限的调用权限讲解
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级管理
一步步教你如何用疯狂.NET架构中的通用权限系统 -- 分级授权
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 操作权限
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 角色权限
疯狂.NET 通用权限设计 C/S后台管理,B/S前台调用源码样例程序源码下载之 --- 数据集权限 

 

淘宝店地址:
http://shop59297253.taobao.com/

 

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2009-12-17 15:15 不仅仅是通用权限设计 阅读(864) 评论(8) 编辑 收藏

#1楼   回复  引用  查看     沙发抢了。

2009-12-17 15:19 | 清海扬波       

#2楼[楼主]  回复 引用 查看   

@清海扬波

可惜,这个是 新手区, 候选去的,没几个人会看的。

#3楼  回复 引用 查看   

很好很强大
2009-12-19 13:00 | 阿水       

#4楼  回复 引用 查看   

请教下吉日:
1 //------------------------------------------------------------
2 // All Rights Reserved , Copyright (C) 2009 , Jirisoft , Ltd.
3 //------------------------------------------------------------

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>
这两块代码是自动产生的还是自己手写的?
2009-12-21 18:32 | flyskylf       

#5楼[楼主]  回复 引用 查看   

@flyskylf

一些底层的是代码生成器生成的,页面上的,是自己复制粘贴上来的,
当然也可以在c#里做一个模板的。

#6楼  回复 引用   

streamReader.ReadLine();
某些时候,sql需要换行才看的清楚,尤其是字段多的时候。如果某个sql语句换行写了,就要over了。
比如:
select
***
from
***
where
***
或者
Insert into ****
Values******
2009-12-22 13:32 | sky&fly[未注册用户]

#7楼[楼主]  回复 引用 查看   

@sky&amp;fly

那还不如说,碰到 unix 了,这c#写的程序还不能运行好了,呵呵,更干脆一些,这只是例子程序而已。

中间用 Go 来区别就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值