예제 #1
0
        /// <summary>
        /// 在新线程中运行函数
        /// </summary>
        /// <param name="func">传入 函数名(有一个参数、无返回值)</param>
        /// <param name="para">object参数</param>
        /// <param name="IsBackground">是否为后台线程(后台线程,窗口关闭后就终止线程)</param>
        public static Thread ThreadNew(ParamFunction func, object para, bool IsBackground)
        {
            Thread th1 = new Thread(new ParameterizedThreadStart(func));

            //判断状态
            //((int)th1.ThreadState &((int)ThreadState.Running | (int)ThreadState.Suspended) ) == 0
            th1.IsBackground = IsBackground;
            th1.Start(para);
            return(th1);
        }
예제 #2
0
        public DynamicParameters SpParameters(JObject obj, string fn_name)
        {
            DynamicParameters sp = new DynamicParameters();

            try
            {
                List <ParamFunction> ListParam = new List <ParamFunction>();
                ListParam = this.getListParamType(fn_name);

                foreach (JProperty x in obj.Properties())
                {
                    var valData = x.Value;
                    //long result;
                    int           result;
                    DateTime      temp;
                    ParamFunction ParamData = ListParam.Where(m => m.parameter_name.ToLower() == x.Name.ToLower()).FirstOrDefault();
                    if (ParamData == null)
                    {
                        new Exception("gak boleh null bos");
                    }
                    if (ParamData.data_type.ToLower() == "character varying" || ParamData.data_type.ToLower() == "character" || ParamData.data_type.ToLower() == "char" || ParamData.data_type.ToLower() == "text")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.String);
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), valData.ToString(), dbType: DbType.String);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "integer")
                    {
                        if (valData != null)
                        {
                            if (valData.ToString().ToLower() == "null")
                            {
                                sp.Add("@" + x.Name.ToString(), null, dbType: DbType.Int32);
                                //return;
                            }
                            else
                            {
                                sp.Add("@" + x.Name.ToString(), Convert.ToInt32(valData.ToString()), dbType: DbType.Int32);
                            }
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "decimal")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.Int32);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), Convert.ToDecimal(valData.ToString()), dbType: DbType.Int32);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "numeric")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.Int32);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), Convert.ToInt32(valData.ToString()), dbType: DbType.Int32);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "bigint")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.Int64);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), Convert.ToInt64(valData.ToString()), dbType: DbType.Int64);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "boolean")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.Boolean);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), Convert.ToBoolean(valData), dbType: DbType.Boolean);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "json")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, (DbType)NpgsqlDbType.Json);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), valData, (DbType)NpgsqlDbType.Json);
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "datetime" || ParamData.data_type.ToLower() == "timestamp without time zone" || ParamData.data_type.ToLower() == "date" || ParamData.data_type.ToLower() == "timestamp")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.DateTime);
                            //return;
                        }
                        else
                        {
                            if (ParamData.data_type.ToLower() == "date")
                            {
                                sp.Add("@" + x.Name.ToString(), DateTime.Parse(valData.ToString()), dbType: DbType.Date);
                            }
                            else
                            {
                                sp.Add("@" + x.Name.ToString(), DateTime.Parse(valData.ToString()), dbType: DbType.DateTime);
                            }
                        }
                    }
                    else if (ParamData.data_type.ToLower() == "xid")
                    {
                        if (valData.ToString().ToLower() == "null")
                        {
                            sp.Add("@" + x.Name.ToString(), null, dbType: DbType.DateTime);
                            //return;
                        }
                        else
                        {
                            sp.Add("@" + x.Name.ToString(), Convert.ToInt32(valData.ToString()), dbType: DbType.Int32);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }
            return(sp);
        }