这个插入数据库的方法:
     public void ExecLogger(List<string> datakey, List<string> datavalue,string data)
        {
            lock (allLock)
            {
                //分类
                string LOG_FUNC_NAME = datavalue[datakey.FindIndex(s => s.Equals("LOG_FUNC_NAME"))].ToString();
                LOG_FUNC_NAME = LOG_FUNC_NAME.StartsWith("<") ? LOG_FUNC_NAME.TrimStart('<').Split('>')[0] : LOG_FUNC_NAME;
                string LOG_ID = datavalue[datakey.FindIndex(s => s.Equals("LOG_ID"))].ToString();
                string LOG_TYPE = datavalue[datakey.FindIndex(s => s.Equals("LOG_TYPE"))].ToString();
                string execlogger = string.Empty;
                try
                {
                    this.CreateTable(LOG_FUNC_NAME);
                    if (LOG_TYPE == "CREATE")  //create 的数据 
                    {
                        if (CheckIsOver(datakey.Count, 13)) return;
                        if (CheckRow(LOG_FUNC_NAME, LOG_ID))
                        {
                            return;
                        }
                        Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
                        string key = string.Empty;
                        string value = string.Empty;
                        lock (objbuildsql1)
                        {
                            for (int i = 0; i < datakey.Count(); i++)
                            {
                                if (datakey[i] == "LOG_TYPE" || datakey[i] == "_TYPE" || datakey[i] == "PE")
                                {
                                    continue;                               
                                }
                                else
                                {
                                    key += string.Format("{0}", datakey[i].ToString());
                                    value += string.Format("'{0}'", datavalue[i].ToString().Replace(@"\", @"\\").Replace("\'", "\""));
                                    if (i != datakey.Count() - 1 && datakey[i + 1] != "LOG_TYPE")
                                    {
                                        key += ",";
                                        value += ",";
                                    }
                                }
                            }                            execlogger = string.Format("insert into {0} ({1}) values ({2});", LOG_FUNC_NAME, key, value);
                        }
                    }
                    else if (LOG_TYPE == "UPDATE")  //updata 的数据
                    {
                        if (CheckIsOver(datakey.Count, 12)) return;
                        Thread.Sleep(200);
                        if (!CheckRow(LOG_FUNC_NAME, LOG_ID))
                        {
                            lock (objresend)
                            {
                                new LogSQS().ReSend(datakey, datavalue);
                            }
                            return;
                        }
                        else
                        {
                            if (CheckUpdateOutputRow(LOG_FUNC_NAME, LOG_ID))
                            {
                                return;
                            }
                            else
                            {
                                lock (objbuildsql2)
                                {
                                    execlogger = string.Format("update {0} set ", LOG_FUNC_NAME);
                                    for (int i = 0; i < datakey.Count(); i++)
                                    {
                                        if (datakey[i] == "LOG_TYPE" || datakey[i] == "_TYPE" || datakey[i] == "PE" || datakey[i] == "LOG_ID")
                                        {
                                            continue;
                                        }
                                        execlogger += string.Format("{0}='{1}'", datakey[i].ToString(), datavalue[i].ToString().Replace(@"\", @"\\").Replace("\'", "\""));
                                        if (i != datakey.Count() - 1 && datakey[i + 1] != "LOG_TYPE")
                                        {
                                            execlogger += ",";
                                        }
                                    }                                    execlogger += string.Format(" where {0}='{1}';", "LOG_ID", LOG_ID);
                                }
                            }
                        }
                    }
                    else
                    {
                        return;
                    }
                    this.InsertOrUpdate(execlogger);
                }
                catch (Exception ex)
                {
                    try
                    {
                        lock (objwritelog)
                        {
                            LogWrapper logWrapper = new LogWrapper();                            logWrapper.BuildLogFile("MYSQL.Exec", ex.ToString(), execlogger, data, "", "", "", "", "", "", "", "", "", "", "");
                        }
                    }
                    catch
                    {
                        throw;
                    }
                    finally
                    {
                        lock (objresend)
                        {
                            new LogSQS().ReSend(datakey, datavalue);
                        }
                    }
                }
            }
        }