private void btnWriteDb_Click(object sender, EventArgs e) { if (listboxAlias.SelectedIndex < 0) { MessageBox.Show("未选中变量!", "提示信息"); } else { try { //注意array在函数内部做参数时,数据下标是从1开始的所以要考虑将第0位空出来,n个Item,就要定义n+1列数组,添加一个0,但在函数使用时,又是从左开始读取的。(针对opc) //否则会报错 OPCItem bItem = KepItems.GetOPCItem(itmHandleServer); int[] temp = new int[2] { 0, bItem.ServerHandle }; Array serverHandles = (Array)temp; Array values; Array Errors; object qualities; object timeStamps; KepGroup.SyncRead(1, 1, ref serverHandles, out values, out Errors, out qualities, out timeStamps); bool result = (Errors.GetValue(1).ToString() == "0") ? true : false; object tagValue = values.GetValue(1); if (result) { int addResult = TagDataOper.Add(new TagData() { ServerName = txtServerName.Text, AliasName = listboxAlias.SelectedItem.ToString(), TagValue = tagValue.ToString() }); if (addResult == 1) { MessageBox.Show("入库成功!", "提示信息"); } else { MessageBox.Show("入库失败!", "提示信息"); } } GC.Collect(); } catch (Exception err) { } } }
private void btnReadDb_Click(object sender, EventArgs e) { if (listboxAlias.SelectedIndex < 0) { MessageBox.Show("未选中变量!", "提示信息"); } else { List <TagData> list = TagDataOper.Read(txtServerName.Text, listboxAlias.SelectedItem.ToString()); this.rtxtRecordDb.Text = ""; foreach (var item in list) { string str1 = "Tag值:" + item.TagValue + "\t"; string str4 = "入库时间:" + item.CreateTime.ToString(); this.rtxtRecordDb.Text += str1 + str4 + "\r\n"; } } }