zoukankan      html  css  js  c++  java
  • 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/里面
  • 相关阅读:
    <阿里工程师的自我素养>读后感-技术人应该具备的一些基本素质
    Hbase的基本原理(与HIVE的区别、数据结构模型、拓扑结构、水平分区原理、场景)
    大数据技术体系 && NoSQL数据库的基本原理
    软件测试面试经验
    APP非功能测试
    手机APP测试(测试点、测试流程、功能测试)
    性能测试学习之路 (四)jmeter 脚本开发实战(JDBC &JMS &接口脚本 & 轻量级接口自动化测试框架)
    HTML 实战生成一张页面
    前端性能测试(H5性能测试)
    JAVA基础——设计模式之观察者模式
  • 原文地址:https://www.cnblogs.com/nj0409/p/1365264.html
Copyright © 2011-2022 走看看