Hardly.SqlController.AddOrUpdate C# (CSharp) Method

AddOrUpdate() static private method

static private AddOrUpdate ( SqlTable table, object &allColumnValues, bool lazy ) : bool
table SqlTable
allColumnValues object
lazy bool
return bool
        internal static bool AddOrUpdate(SqlTable table, ref object[] allColumnValues, bool lazy)
        {
            if(table != null && allColumnValues != null && allColumnValues.Length > 0) {
                try {
                    Debug.Assert(allColumnValues.Length == (table.primaryKeyHeaders?.Length ?? 0) + (table.additionalKeyHeaders?.Length ?? 0));

                    NullNullableDefaultValues(table, ref allColumnValues);

                    string[] vars = GetVars((table.primaryKeyHeaders?.Length ?? 0) + (table.additionalKeyHeaders?.Length ?? 0));
                    string sql = "insert into " + table.tableName;
                    sql += " (" + table.primaryKeyHeaders.Append(table.additionalKeyHeaders).ToCsv();
                    sql += ") values (" + vars.ToCsv(",", "?") + ")";
                    sql += " ON DUPLICATE KEY UPDATE ";
                    string[] keyValues = table.additionalKeyHeaders?.AppendStrings(vars.SubArray((uint)(table.primaryKeyHeaders?.Length ?? 0)), "=?");
                    sql += keyValues.ToCsv();

                    return ExecuteNonQuery(sql, allColumnValues) == 1;
                } catch(Exception e) {
                    Log.exception(e);
                }
            }

            Debug.Fail();
            return false;
        }

Usage Example

コード例 #1
0
ファイル: SqlRow.cs プロジェクト: shashankmishra55/HardlyBot
 private bool AddOrUpdateRow(bool lazySave)
 {
     return(SqlController.AddOrUpdate(table, ref values, lazySave));
 }