C# 调用 *.sql 文件
using System;
using System.Xml;
using System.Data;
using System.IO;
using System.Collections;
using System.Data.SqlClient;
namespace ExecuteSqlFile
{
/// <summary>
/// DBAccess 的摘要说明。
/// </summary>
public class DBAccess
{
public DBAccess()
{
}
#region 属性
private static string ConStr = "";
private static string ConString
{
get
{
if(ConStr == "")
{
try
{
XmlDocument doc = new XmlDocument();
doc.Load("ServerConfig.xml");
string userid = doc.SelectSingleNode("ServerConfig/UserId").InnerText;
string password = doc.SelectSingleNode("ServerConfig/PassWord").InnerText;
string servername = doc.SelectSingleNode("ServerConfig/ServerName").InnerText;
string database = doc.SelectSingleNode("ServerConfig/DataBase").InnerText;
ConStr = "server = " + servername + ";uid = "
+ userid + ";pwd = " + password + ";database = " + database;
}
catch(Exception ex)
{
throw ex;
}
}
return ConStr;
}
}
private static SqlConnection Con;
public static SqlConnection MyConnection
{
get
{
if(Con == null)
{
Con = new SqlConnection(ConString);
}
return Con;
}
}
#endregion
/// <summary>
/// 执行Sql文件
/// </summary>
/// <param name="varFileName"></param>
/// <returns></returns>
public static bool ExecuteSqlFile(string varFileName)
{
if(!File.Exists(varFileName))
{
return false;
}
StreamReader sr = File.OpenText(varFileName);
ArrayList alSql = new ArrayList();
string commandText = "";
string varLine = "";
while(sr.Peek() > -1)
{
varLine = sr.ReadLine();
if(varLine == "")
{
continue;
}
if(varLine != "GO")
{
commandText += varLine;
commandText += "\r\n";
}
else
{
alSql.Add(commandText);
commandText = "";
}
}
sr.Close();
try
{
ExecuteCommand(alSql);
}
catch
{
return false;
}
return true;
}
private static void ExecuteCommand(ArrayList varSqlList)
{
MyConnection.Open();
SqlTransaction varTrans = MyConnection.BeginTransaction();
SqlCommand command = new SqlCommand();
command.Connection = MyConnection;
command.Transaction = varTrans;
try
{
foreach(string varcommandText in varSqlList)
{
command.CommandText = varcommandText;
command.ExecuteNonQuery();
}
varTrans.Commit();
}
catch(Exception ex)
{
varTrans.Rollback();
throw ex;
}
finally
{
MyConnection.Close();
}
}
}
}
配置文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<ServerConfig>
<ServerName>localhost</ServerName>
<DataBase>tttttt</DataBase>
<UserId>sa</UserId>
<PassWord>sa</PassWord>
</ServerConfig>
保存为ServerConfig.xml
放到Bin/Debug/里面
调用如下:
DBAccess.ExecuteSqlFile(@"E:\My Document\MySql\test1.sql");
C# 调用 *.sql 文件相关推荐
- 不附加数据库 ASP.NET调用.sql文件
笔者好久没有写随笔了,这次是遇到提出这样的问题"不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个页面,然后根据向导一步一步引导用户安装生成数据库"那么这 ...
- Hive通过-f调用sql文件并进行传参
有时候我们需要从Hive中获取需要的数据进行代码的编写,这就需要我们将查询到的语句输出到文档中,我们可以使用-e这个参数,例如: hive -e 'select * from area where c ...
- oracle存储过程调用sql文件,oracle存储过程的sql调用
因为做项目的测试,所有需要不断的在数据库手工添加数据,这时候如果是批量的插入测试数据,很多情况下要用到存储过程. 如下,是Oracle数据库下一个简单的插入数据的存储过程: create or rep ...
- mysql和oracle 命令行执行sql文件 数据库执行sql文件 执行sql语句
windows和linux操作相同 借鉴:http://www.361way.com/mysql-exec-sql-file/2646.html 方法一:mysql 调用法 操作方式如下: mysql ...
- VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件
VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...
- VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件
VB.net:使用Visual Studio 2010中的VB.net语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual ...
- php调用sql数据库代码怎么写,PHP读取SQL文件并导入数据库(示例)
/** * 读取 sql 文件并写入数据库 * @version 1.01 demo.php * @author xingshaocheng * @edit: www.jbxue.com */ cla ...
- docker 启动sqlserver_Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)...
我正在尝试使用MSSQL DB创建自己的Docker镜像以进行开发.它基于microsoft / mssql-server-linux映像.在构建期间,我想将一些.sql文件复制到容器中,然后运行这些 ...
- Java中使用mysqldump实现mysql数据库备份并将sql文件打成zip压缩包
场景 在Java代码中调用mysqldump命令实现对指定的mysql数据库和指定的表导出为sql文件. 并将sql文件进行压缩成zip存储备份. mysqldump 简介 mysqldump 是 M ...
最新文章
- 一个类的实例是另一个类的属性python_Python中的类属性和实例属性引发的一个坑...
- python【蓝桥杯vip练习题库】ADV-279矩阵乘法
- node.js Web应用框架Express入门指南
- (精华)转:RDD:创建的几种方式(scala和java)
- pooled-jms_Hibernate隐藏的宝石:pooled-lo优化器
- Git理论、原理、操作
- 剑指 Offer 32 - II. 从上到下打印二叉树 II
- 随想录(人脸检测之dlib)
- Merge PDF - Split PDF(PDF合成)
- 阿里云技术专家入选Apache Member;百度Q1财报:营收241亿元;华为面向全球发布AI-Native数据库……...
- 读书笔记202208 TRC2010 Multi-agent model predictive control of signaling split in urban traffic networks
- 吃鸡 python开发_ 冲顶大会等游戏答题神器,提供答题辅助决策 ,帮助顺利吃鸡...
- LeetCode 3:Longest Substring Without Repeating Charact
- 交换机有哪几种端口类型
- 黑马SQL入门到精通笔记 —— 进阶篇
- 买游戏来运营_游戏化思维帮你玩转社群运营
- 如何发表期刊方法步骤
- YOLOv5实战中国交通标志识别(TT100K数据集)
- PMP的PDU是什么?有什么用?怎么免费获得?
- 新、改、扩建项目“三同时”安全管理制度
热门文章
- memlock mysql_mysql配置详解(不断更新)
- linux使用设备文件的目录,Linux系统下的/dev目录
- java 发送邮件昵称_利用JavaMail发送QQ邮件
- 课题开题报告范文样本_成都汽车职业技术学校举行 2020年省、市、区课题开题报告会...
- 【JAVA基础篇】集合框架
- lintcode循环数组之连续子数组求和
- Spring3 整合 Hibernate4实现数据库操作(1)
- matlab桥梁受力计算公式,matlab桥梁计算
- python数独游戏源代码100行_python实现自动解数独小程序
- C++面试常见问题一