zj199719 2021-11-17 15:26 采纳率: 58.3%
浏览 18

C#获取SQL文本并且执行的方法已经写好了,在主函数Main里面应该如何写C#调用方法的代码,望能够得到解答


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.IO;
using System.Data.SqlClient;
using System.Configuration.Assemblies;

namespace OperationSQL
{
    class Operation
    {

        public static ArrayList Getarraylist(string targetdir, string dbname)                        //    静态函数,输入两个字符串路径和数据库名,返回一个arraylist里面的SQL语句        
        {
            ArrayList sqllist = new ArrayList();                                                     // 新建集合

            System.IO.FileInfo FileInfo = new System.IO.FileInfo(targetdir + "DATABASE.sql");    // new一个文件信息的对象
            string path = System.IO.Path.Combine(targetdir, "DATABASE.sql");                     // 获得路径
            string commandText = "";                                                             // 定义命令文本 为一个空的值
            string varLine = "";                                                                 // 定义一个各种数据类型的行内容  为一个空值
            StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);               // 定义数据读取对象
            while (sr.Peek() > -1)                                                               // 判断读取文件中的行,是否直到到达文件末尾
            {
                varLine = sr.ReadLine();                                                          // 读取一行
                varLine = varLine.Replace("[DATABASE]", "[" + dbname + "]");                     // 随时更换新的数据库名字
                if (varLine == "")
                {
                    continue;
                }
                if (varLine != "GO" && varLine != "go" && varLine.Substring(0, 1) != "/")       // 判断是不是GO 或者/
                {
                    commandText += varLine;                                                      // 再往commandTex里面加个字符串
                    commandText += "\r\n";                                                       // 回车换行
                }
                else
                {
                    sqllist.Add(commandText);                                                     // 把拼接好的commandText集合添加到sqllist里面
                    commandText = "";                                                             // 清空中转用的commandText里面的内容
                }
            }
            sr.Close();                                                                                   // 执行完成以后关闭
            return sqllist;                                                                              // 返回sqllist


        }

        public static void ExcuteSql(SqlConnection connectstring, ArrayList sql)                      // 传入数据库的连接对象和SQL语句列表 并且执行 
        {
            
                SqlTransaction varTrans = connectstring.BeginTransaction();                           // 开始事务对象                 
                SqlCommand cmd = new SqlCommand();                                                    // new一个新的命令 新建命令
                cmd.Connection = connectstring;                                                       // 数据库连接赋值
                cmd.Transaction = varTrans;                                                           //命令事物赋值
                foreach (string sqlstring in sql)                                                        // 遍历
                {
                    if (sqlstring != null)                                                              //在确保一便 列表里面不为空
                    {
                        cmd.CommandText = sqlstring;                                                   // sql命令赋值
                        cmd.ExecuteNonQuery();                                                         //  sql指令执行
                    }
                }
                varTrans.Commit();                                                                    // 如果全部执行成功不报错则提交

            
        }
    }
}
using System;

namespace OperationSQL
{
    class Program
    {
        static void Main(string[] args)
        {
            
            

            Console.WriteLine("已经完成代码的更新");

           
        }
    }
}


  • 写回答

1条回答 默认 最新

  • 萌新在线231 2021-11-17 15:30
    关注

    Using OperationSQL

    OperationSQL.方法(参数)

    评论

报告相同问题?

问题事件

  • 创建了问题 11月17日

悬赏问题

  • ¥15 机器学习预测遇到的目标函数问题
  • ¥15 python的EOFError该怎么解决?
  • ¥15 Fluent,液体进入旋转区域体积分数不连续
  • ¥15 java linux下将docx文件转pdf
  • ¥15 maven无法下载依赖包
  • ¥15 关于pycharm, Callable[[str],bool]作为方法参数使用时, lambda 类型不提示问题
  • ¥15 layui数据重载无效
  • ¥15 寻找了解qq家园纵横四海的程序猿。
  • ¥15 optisystem
  • ¥15 VB.NET画图时的撤销编程