/// <summary>
        /// 批量删除数据库
        /// </summary>
        /// <param name="db">指定的数据库</param>
        /// <param name="dt">要删除的数据库表集合</param>
        /// <param name="connKey">数据库连接串</param>
        /// <returns>删除是否成功,true表示删除成功,false表示删除失败</returns>
        public bool DropDataTable(string db, List <string> dt, string connKey)
        {
            //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();

            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();

            //判断数据库是否存在
            if (IsDBExist(db, connKey) == false)
            {
                throw new Exception("数据库不存在!");
            }

            for (int i = 0; i < dt.Count(); i++)
            {
                //如果数据库表存在,则抛出错误
                if (IsTableExist(db, dt[i], connKey) == false)
                {
                    //如果数据库表已经删除,则跳过该表
                    continue;
                }
                else//数据表存在,则进行删除数据表
                {
                    //其后判断数据表是否存在,然后创建数据表
                    string createTableStr = "use " + db + " drop table " + dt[i] + " ";
                    SqlServer_tool.ExecuteNonQuery(createTableStr, connKey);
                }
            }
            return(true);
        }
        /// <summary>
        ///  在指定的数据库中,创建数据表
        /// </summary>
        /// <param name="db">指定的数据库</param>
        /// <param name="dt">要创建的数据表集合</param>
        /// <param name="dic">数据表中的字段及其数据类型  Dictionary集合</param>
        /// <param name="connKey">数据库的连接Key</param>
        public void CreateDataTable(string db, string[] dt, List <Dictionary <string, string> > dic, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();

            //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();

            //判断数据库是否存在
            if (IsDBExist(db, connKey) == false)
            {
                throw new Exception("数据库不存在!");
            }

            for (int i = 0; i < dt.Count(); i++)
            {
                //如果数据库表存在,则抛出错误
                if (IsTableExist(db, dt[i], connKey) == true)
                {
                    //如果数据库表已经存在,则跳过该表
                    continue;
                }
                else//数据表不存在,创建数据表
                {
                    //其后判断数据表是否存在,然后创建数据表
                    string createTableStr = PinjieSql(db, dt[i], dic[i]);
                    SqlServer_tool.ExecuteNonQuery(createTableStr, connKey);
                }
            }
        }
        /// <summary>
        /// 判断数据库是否存在
        /// </summary>
        /// <param name="db">数据库的名称</param>
        /// <param name="connKey">数据库的连接Key</param>
        /// <returns>true:表示数据库已经存在;false,表示数据库不存在</returns>
        public Boolean IsDBExist(string db, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();
            //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();
            string createDbStr = " select * from master.dbo.sysdatabases where name " + "= '" + db + "'";

            bool dt_count = SqlServer_tool.Select_count(createDbStr, connKey);

            return(dt_count);
        }
        /// <summary>
        /// 判断数据库表是否存在
        /// </summary>
        /// <param name="db">数据库</param>
        /// <param name="tb">数据库表名</param>
        /// <param name="connKey">连接数据库的key</param>
        /// <returns></returns>
        public Boolean IsTableExist(string db, string tb, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();
            //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();
            string createDbStr = "use " + db + " select 1 from sysobjects where id = object_id('" + tb + "') and type ='U'";
            //在指定的数据库中 查找该表是否存在
            bool dt_count = SqlServer_tool.Select_count(createDbStr, connKey);

            return(dt_count);
        }
        /// <summary>
        /// 创建数据库
        /// </summary>
        /// <param name="db">数据库名称</param>
        /// <param name="connKey">连接数据库的key</param>
        public void CreateDataBase(string db, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();
            //符号变量,判断数据库是否存在
            Boolean flag = IsDBExist(db, connKey);

            //如果数据库存在,则抛出
            if (flag == true)
            {
                throw new Exception("数据库已经存在!");
            }
            else
            {
                //数据库不存在,创建数据库
                //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();
                string createDbStr = "Create database " + db;
                SqlServer_tool.ExecuteNonQuery(createDbStr, connKey);
            }
        }
        /// <summary>
        /// 删除数据库
        /// </summary>
        /// <param name="db">数据库名</param>
        /// <param name="connKey">数据库连接串</param>
        /// <returns>删除成功为true,删除失败为false</returns>
        public bool DropDataBase(string db, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();
            //SQLHelper helper = SQLHelper.GetInstance();
            //符号变量,判断数据库是否存在
            Boolean flag = IsDBExist(db, connKey);

            //如果数据库不存在,则抛出
            if (flag == false)
            {
                return(false);
            }
            else
            {
                //数据库存在,删除数据库
                //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();
                string createDbStr = "Drop database " + db;
                SqlServer_tool.ExecuteNonQuery(createDbStr, connKey);
                return(true);
            }
        }
        /// <summary>
        ///在指定的数据库中,创建数据库表
        /// </summary>
        /// <param name="db">指定的数据库</param>
        /// <param name="dt">要创建的数据库表</param>
        /// <param name="dic">数据表中的字段及其数据类型</param>
        /// <param name="connKey">数据库的连接Key</param>
        /// <returns>成功返回“ok” 失败返回“报错信息”</returns>
        public string CreateDataTable(string db, string dt, Dictionary <string, string> dic, string connKey)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();

            //string connToMaster = ConfigurationManager.ConnectionStrings[connKey].ToString();

            //判断数据库是否存在
            if (IsDBExist(db, connKey) == false)
            {
                return("数据库不存在!");
                //throw new Exception("数据库不存在!");
            }
            //如果数据库表存在,则抛出错误
            if (IsTableExist(db, dt, connKey) == true)
            {
                return("数据库表已经存在!");
                //throw new Exception("数据库表已经存在!");
            }
            //数据库表不存在,创建表
            else
            {
                //拼接字符串,该串为创建内容
                //string content = "serial int identity(1,1) primary key";
                string content = "";
                //取出dic中的内容,进行拼接
                List <string> Keys   = new List <string>(dic.Keys);
                List <string> Values = new List <string>(dic.Values);
                for (int i = 0; i < dic.Count(); i++)
                {
                    content = content + "," + Keys[i] + " " + Values[i];
                }
                content = content.Remove(0, 1);
                //其后判断数据库表是否存在,然创建表
                string createTableStr = "use " + db + " create table " + dt + "(" + content + ")";
                SqlServer_tool.ExecuteNonQuery(createTableStr, connKey);
            }

            return("ok");
        }
        /// <summary>
        /// 按照dt批量更新数据库表
        /// </summary>
        /// <param name="dt">需要更新的数据</param>
        /// <param name="data_base">目标数据库名</param>
        /// <param name="serverdt_name">目标数据库表名</param>
        /// <param name="connStr">连接字符串</param>
        /// <param name="where_list">更新数据库KEY字段</param>
        /// <returns>成功返回“ok” 失败返回“报错信息”</returns>
        public string updata_dt(DataTable dt, string data_base, string serverdt_name, string connStr, List <string> where_list)
        {
            Helper.SQLSERVER.SqlServer_tool SqlServer_tool = new Helper.SQLSERVER.SqlServer_tool();
            DataTable dt_new = new DataTable();
            string    sql    = "";

            try
            {
                sql    = SqlServer_tool.sys_datatable(serverdt_name);
                dt_new = SqlServer_tool.select_data(sql, connStr);

                //创建键值集合
                Dictionary <string, string> listDic = new Dictionary <string, string>();

                for (int i = 0; i < dt_new.Rows.Count; i++)
                {
                    //用一个键值来保存数据库表的字段和数据类型
                    //Dictionary<string, string> dic = new Dictionary<string, string>();
                    listDic.Add(dt_new.Rows[i]["列名"].ToString(), dt_new.Rows[i]["类型"].ToString());
                }

                if (SqlServer_tool.IsTableExist(data_base, "datatable_temporary_ljy03042018", connStr))//判断临时表是否存在
                {
                    List <string> dt_name  = new List <string>();
                    string        dt_name1 = "datatable_temporary_ljy03042018";

                    dt_name.Add(dt_name1);

                    DropDataTable(data_base, dt_name, connStr); //删除临时表
                }

                string CreateDataTable_return = SqlServer_tool.CreateDataTable(data_base, "datatable_temporary_ljy03042018", listDic, connStr);
                if (CreateDataTable_return == "ok")
                {
                    string Insertbulk_return = SqlServer_tool.Insertbulk(dt, connStr, "datatable_temporary_ljy03042018");
                    if (Insertbulk_return == "ok")
                    {
                        #region 拼sql字符串

                        string set = "";

                        for (int i = 0; i < dt_new.Rows.Count; i++)
                        {
                            bool key_state = false;
                            foreach (string item in where_list)
                            {
                                if (dt_new.Rows[i]["列名"].ToString() == item)
                                {
                                    key_state = true;
                                }
                            }
                            if (key_state == false)
                            {
                                set = set + "a." + dt_new.Rows[i]["列名"].ToString() + "= b." + dt_new.Rows[i]["列名"].ToString() + " , ";
                            }
                        }

                        set = set.Substring(0, set.Length - 3);


                        string where = "";
                        foreach (string item_where in where_list)
                        {
                            where = where + "a." + item_where + "= b." + item_where + " and ";
                        }

                        where = where.Substring(0, where.Length - 4);


                        string update = "";

                        update = "update a set " + set + " from " + serverdt_name + " a,datatable_temporary_ljy03042018 b where " + where;

                        #endregion

                        ExecuteNonQuery(update, connStr);
                    }
                    else
                    {
                        if (SqlServer_tool.IsTableExist(data_base, "datatable_temporary_ljy03042018", connStr))//判断临时表是否存在
                        {
                            List <string> dt_name  = new List <string>();
                            string        dt_name1 = "datatable_temporary_ljy03042018";

                            dt_name.Add(dt_name1);

                            DropDataTable(data_base, dt_name, connStr); //删除临时表
                        }
                        return(Insertbulk_return);
                    }
                }
                else
                {
                    if (SqlServer_tool.IsTableExist(data_base, "datatable_temporary_ljy03042018", connStr))//判断临时表是否存在
                    {
                        List <string> dt_name  = new List <string>();
                        string        dt_name1 = "datatable_temporary_ljy03042018";

                        dt_name.Add(dt_name1);

                        DropDataTable(data_base, dt_name, connStr); //删除临时表
                    }
                    return(CreateDataTable_return);
                }
                if (SqlServer_tool.IsTableExist(data_base, "datatable_temporary_ljy03042018", connStr))//判断临时表是否存在
                {
                    List <string> dt_name  = new List <string>();
                    string        dt_name1 = "datatable_temporary_ljy03042018";

                    dt_name.Add(dt_name1);

                    DropDataTable(data_base, dt_name, connStr); //删除临时表
                }

                return("ok");
            }
            catch (Exception ex)
            {
                if (SqlServer_tool.IsTableExist(data_base, "datatable_temporary_ljy03042018", connStr))//判断临时表是否存在
                {
                    List <string> dt_name  = new List <string>();
                    string        dt_name1 = "datatable_temporary_ljy03042018";

                    dt_name.Add(dt_name1);

                    DropDataTable(data_base, dt_name, connStr); //删除临时表
                }
                return(ex.Message.ToString());
                //throw;
            }
        }