/// <summary> /// Выборочное запрос элементов. /// </summary> public Collection <ItemSqlSimple> GetItemsShortByDataNames(Collection <string> dataNames) { Collection <ItemSqlSimple> items = new Collection <ItemSqlSimple>(); // Задание нулевой записи с времененем последнего обновления цикла. ItemSqlSimple sqlItem = new ItemSqlSimple(); sqlItem.SqlTime = ItemUpdateTime; items.Add(sqlItem); // Дублированная запись //items[0].SqlTime = ItemUpdateTime; // Передача записей по имени. foreach (string dataName in dataNames) { ItemSqlSimple item = new ItemSqlSimple(); if (ItemSqlDict.ContainsKey(dataName)) { item = ItemSqlDict[dataName].GetItemSimple(); } items.Add(item); } ReadItemShortCount++; return(items); }
void ThreadMain_WorkChanged(object sender, EventArgs e) { SqlConnection connection = new SqlConnection(ConnectionString); try { connection.Open(); SqlCommand command = new SqlCommand(string.Format("SELECT DataName, Trend, Description, Unit, FormatValue, MinValue, MaxValue, DataType, DataValue, Quality, SqlTime, DeviceTime, TimeOut, Comment FROM {0}", ValuesCurrentTableName), connection); SqlDataReader reader = command.ExecuteReader(); int i = 0; while (reader.Read()) { ItemSql item = new ItemSql(); item.DataName = reader.GetString(0).TrimEnd(); item.Trend = reader.GetBoolean(1); item.Description = reader.GetString(2).TrimEnd(); item.Unit = reader.GetString(3).TrimEnd(); item.FormatValue = reader.GetString(4).TrimEnd(); item.MinValue = reader.GetDouble(5); item.MaxValue = reader.GetDouble(6); item.DataType = (short)reader.GetByte(7); item.DataValue = reader.GetDouble(8); item.Quality = (short)reader.GetInt32(9); item.SqlTime = reader.GetDateTime(10); item.DeviceTime = reader.GetDateTime(11); item.TimeOut = reader.GetInt32(12); item.Comment = reader.GetString(13).TrimEnd(); if (!ItemsInited) { ItemSqls.Add(item); ItemSqlDict.Add(item.DataName, item); ItemSqlShorts.Add(item.GetItemSimple()); } else { ItemSqls[i] = item; if (ItemSqlDict.ContainsKey(item.DataName)) { ItemSqlDict[item.DataName] = item; } ItemSqlShorts[i] = item.GetItemSimple(); } i++; } if (!ItemsInited) { ItemsInited = true; } ItemUpdateTime = DateTime.Now; } catch { ItemsInited = false; ItemSqls.Clear(); ItemSqlDict.Clear(); ItemSqlShorts.Clear(); } finally { connection.Close(); } }