public static async Task <int> InsertUserFilterRuleJobAsync(UserFilterRuleJob job) { string sql = @"INSERT INTO Configuration..tbl_UserFilterRuleJob ( JobName , CreateUser , ModifyUser , IsPreview , IsSubmit , JobStatus , PreviewStatus , ResultCount , CreateDateTime , LastUpdateDateTime , LastRunDateTime , Description ) VALUES ( @JobName , -- JobName - nvarchar(100) @CreateUser , -- CreateUser - nvarchar(100) @ModifyUser , -- ModifyUser - nvarchar(100) @IsPreview , -- IsPreview - bit @IsSubmit , -- IsSubmit - bit @JobStatus , -- JobStatus - nvarchar(100) @PreviewStatus , -- PreviewStatus - nvarchar(100) @ResultCount , -- ResultCount - int GETDATE() , -- CreateDateTime - datetime GETDATE() , -- LastUpdateDateTime - datetime GETDATE() , -- LastRunDateTime - datetime @Description -- Description - nvarchar(500) );SELECT @@IDENTITY; "; using (var dbhelper = DbHelper.CreateDbHelper(false)) { using (var cmd = new SqlCommand(sql)) { cmd.CommandType = CommandType.Text; var props = job.GetType().GetProperties(); foreach (PropertyInfo prop in props) { object value = prop.GetValue(job); if (prop.Name.Equals("PKID", StringComparison.OrdinalIgnoreCase) || prop.PropertyType == typeof(DateTime)) { continue; } if (prop.PropertyType.IsEnum) { cmd.Parameters.Add(new SqlParameter(string.Concat("@", prop.Name), value.ToString())); } else { cmd.Parameters.Add(new SqlParameter(string.Concat("@", prop.Name), value)); } } var result = await dbhelper.ExecuteScalarAsync(cmd); return(Convert.IsDBNull(result) ? 0 : Convert.ToInt32(result)); } } }