/// <summary> /// 更新记录(存在更新,不存在添加) /// </summary> /// <returns>返回id</returns> public int InsertOrUpdateIdNoTrans(string condition, string idName = "id") { if (__EditColumns.Count == 0) { return(-1); } var sb = new StringBuilder(); var parameters = new List <object>(); if (condition.NotNullOrEmpty()) { sb.Append("if not exists(select 1 from ").Append(TableName).Append(" where ").Append(condition).Append(")\nbegin\n"); } sb.Append("insert into ").Append(TableName).Append(" ("); foreach (var column in __EditColumns) { sb.Append("[").Append(column.Key).Append("],"); parameters.Add(column.Value); } sb.Remove(sb.Length - 1, 1); sb.Append(")values("); var columnCount = __EditColumns.Count; for (var i = 0; i < columnCount; i++) { sb.Append("?,"); } sb.Remove(sb.Length - 1, 1); sb.Append(")\nselect SCOPE_IDENTITY()\nend else begin\n"); sb.Append("update ").Append(TableName).Append(" set "); foreach (var column in __EditColumns) { sb.Append("[").Append(column.Key).Append("] = ?,"); parameters.Add(column.Value); } if (sb.ToString().EndsWith(",")) { sb.Remove(sb.Length - 1, 1); } if (condition.HasValue()) { sb.Append(" where ").Append(condition); } sb.Append("\nselect max(").Append(idName).Append(") from ").Append(TableName); if (condition.NotNullOrEmpty()) { sb.Append(" where ").Append(condition); } sb.Append(" end"); __EditColumns.Clear(); return(DbBase2 <TK> .ExecuteScalarNoTrans(-1, sb.ToString(), parameters.ToArray())); }
/// <summary> /// 列最大值 /// </summary> public static TR Max <TR>(string columnName, TR defaultValue = default(TR)) { var sql = "SELECT MAX([{0}]) FROM {1}".Formats(columnName, typeof(T).Name); return(DbBase2 <TK> .ExecuteScalarNoTrans(defaultValue, sql)); }
/// <summary> /// 返回表的记录数 /// </summary> public static int GetCount() { var sql = "SELECT COUNT(1) FROM " + typeof(T).Name; return(DbBase2 <TK> .ExecuteScalarNoTrans(0, sql)); }