给朋友写了一个从脚本文件逐行加载执行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,如需转载请自行联系原作者
相关文章
|
8月前
|
SQL Java 数据库连接
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错
|
6月前
|
存储 SQL 数据库连接
C#程序调用Sql Server存储过程异常处理:调用存储过程后不返回、不抛异常的解决方案
本文分析了C#程序操作Sql Server数据库时偶发的不返回、不抛异常问题,并提出了解决思路。首先解析了一个执行存储过程的函数`ExecuteProcedure`,其功能是调用存储过程并返回影响行数。针对代码执行被阻塞但无异常的情况,文章总结了可能原因,如死锁、无限循环或网络问题等。随后提供了多种解决方案:1) 增加日志定位问题;2) 使用异步操作提升响应性;3) 设置超时机制避免阻塞;4) 利用线程池分离主线程;5) 通过信号量同步线程;6) 监控数据库连接状态确保可用性。这些方法可有效应对数据库操作中的潜在问题,保障程序稳定性。
541 11
|
8月前
|
SQL Java 数据库连接
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
【YashanDB 知识库】解决 mybatis 的 mapper 文件 sql 语句结尾加分号";"报错
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
|
8月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
本文来自YashanDB官网,介绍如何处理Oracle客户端sql*plus中使用@@调用同级目录SQL脚本的场景。崖山数据库23.2.x.100已支持@@用法,但旧版本可通过Python脚本批量重写SQL文件,将@@替换为绝对路径。文章通过Oracle示例展示了具体用法,并提供Python脚本实现自动化处理,最后调整批处理脚本以适配YashanDB运行环境。
|
11月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
SQL 数据库
为什么 SQL 日志文件很大,我应该如何处理?
为什么 SQL 日志文件很大,我应该如何处理?
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
118 0
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
528 13