/// <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); }
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); }