void IDB.Update(object obj, string key_fields, string update_fields) { MySql.Data.MySqlClient.MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(); cmd.Connection = conn; cmd.Transaction = tran; cmd.CommandTimeout = 8000; // string sql = ""; string fields = ""; List <string> lst = new List <string>(); if (update_fields.Contains(",") == false) { lst.Add(update_fields.ToLower()); } else { foreach (string field in update_fields.Split(',')) { lst.Add(field.ToLower()); } } foreach (System.Reflection.PropertyInfo p in obj.GetType().GetProperties()) { if (lst.Contains(p.Name.ToLower()) == false) { continue; } if (fields == "") { fields += p.Name + "=" + "@" + p.Name; } else { fields += "," + p.Name + "=" + "@" + p.Name; } } string filter = ""; if (key_fields.Contains(",") == false) { filter = key_fields + "=" + "@" + key_fields; } else { foreach (string field in key_fields.Split(',')) { if (filter == "") { filter += field + "=" + "@" + field; } else { filter += " and " + field + "=" + "@" + field; } } } sql = "update " + ReflectionHelper.GetDataTableNameByModel(obj) + " set " + fields + " where " + filter; cmd.CommandText = sql; cmd.Parameters.AddRange(ReflectionHelper.ModelToSqlParameters(obj)); // cmd.ExecuteScalar(); }