internal static void LoadTriplet(Triplet t, SqlConnection con) { if (t == null) { return; } try { using (SqlCommand command = con.CreateCommand()) { command.CommandText = string.Format("select max(metrixid) from metrix where entityId = {0} and predicateId={1} and metrixobject = '{2}'", t.EntityId, t.PredicateId, t.MetrixObject); var o = command.ExecuteScalar(); if (o == null || o is DBNull) { if (t.MetrixDate == null) { command.CommandText = "insert into metrix(entityId, predicateId, metrixobject, metrixValue) values (" + t.EntityId + "," + t.PredicateId + ",'" + t.MetrixObject + "', " + t.MetrixValue.ToString().Replace(",",".") + ")"; } else { //yyyy-mm-dd hh:mi:ss command.CommandText = "insert into metrix(entityId, predicateId, metrixobject, metrixValue, metrixData) values (" + t.EntityId + "," + t.PredicateId + ",'" + String.Format("{0:yyyy/MM/dd H:mm:ss}", t.MetrixDate) + "', " + t.MetrixValue.ToString().Replace(",", ".") + string.Format(", convert(datetime, '{0}-{1}-{2} {3}:{4}:{5}', 120))", t.MetrixDate.Value.Year, t.MetrixDate.Value.Month, t.MetrixDate.Value.Day, t.MetrixDate.Value.Hour, t.MetrixDate.Value.Minute, t.MetrixDate.Value.Second); } command.ExecuteNonQuery(); } } } catch{} }
internal static void SetMetrix(Triplet triplet, SqlConnection con) { if (triplet == null) { return; } using (SqlCommand command = con.CreateCommand()) { command.CommandText = String.Format("select metrixid from metrix where predicateid={0} and entityid = {1}", triplet.PredicateId, triplet.EntityId); var s = String.IsNullOrEmpty(triplet.MetrixObject) ? string.Empty : triplet.MetrixObject; command.CommandText += triplet.MetrixDate == null ? " and metrixObject ='" + s + "'" : String.Format(" and metrixData=convert(datetime,'{0}-{1}-{2} {3}:{4}:{5}', 120)", triplet.MetrixDate.Value.Year, triplet.MetrixDate.Value.Month, triplet.MetrixDate.Value.Day, triplet.MetrixDate.Value.Hour, triplet.MetrixDate.Value.Minute, triplet.MetrixDate.Value.Second); var o = command.ExecuteScalar(); if (o == null) { if (triplet.MetrixValue != 0) { LoadTriplet(triplet, con); } } else { if (triplet.MetrixValue != 0) { command.CommandText = string.Format("update metrix set metrixvalue={0} where metrixid = {1}", triplet.MetrixValue, (int)o); } else { command.CommandText = string.Format("delete metrix where metrixid = {0}", (int)o); } } command.ExecuteNonQuery(); } }
private void OnSaveButtonClick(object sender, EventArgs e) { object[][] selObj = objects.Where(o => (bool)((object[])o)[2]).ToArray(); using (var con = DataHelper.OpenOrCreateDb()) { int formPredicateId = DataHelper.GetParameter(cbParameters.Text, con, true); foreach (var d in itogData) { for (int i = 1; i < d.Length; i++) { Triplet t = new Triplet((int)selObj[i - 1][0], formPredicateId, d[0].ToString(), (decimal)d[i]); DateTime dat; if (DateTime.TryParse(d[0].ToString(), out dat)) { t.MetrixDate = dat; } DataHelper.SetMetrix(t, con); } } } MessageBox.Show("Сохранено " + itogData.Count + " объектов"); }