C#在打开到MySql的连接时停止执行

时间:2015-05-22 09:36:16

标签: c# plc opc

我正在编写一个应用程序,用于将数据从模拟OPC服务器传输到MySql数据库。我正在使用OPC Foundation的一些库 - OPCNETAPI.DLL,OPCNETAPI.COM.DLL。

我快乐地从服务器读取程序,但是一旦我在读取数据的循环内打开一个连接,它就会循环大约5次然后停止执行..没有抛出异常而且我试过了几个小时才能完成它并且惨遭失败。

我还修改了VisualStudio,以便在抛出异常时中断,并且它没有

希望有些人可能知道最新情况,但没有什么明显的,希望下面的代码会引发想法!

Windows窗体代码

     public void readplc()
            {
                Opc.URL url = new Opc.URL("opcda://localhost/Matrikon.OPC.Simulation.1");
                Opc.Da.Server server = null;
                OpcCom.Factory fact = new OpcCom.Factory();
                server = new Opc.Da.Server(fact, null);
                try
                {

                    server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));
                }
                catch (Exception ecy)
                {

                }
                // Create a group
                Opc.Da.Subscription group;
                Opc.Da.SubscriptionState groupState = new Opc.Da.SubscriptionState();
                groupState.Name = "Group";
                groupState.Active = true;
                group = (Opc.Da.Subscription)server.CreateSubscription(groupState);
                // add items to the group.
                Opc.Da.Item[] items = new Opc.Da.Item[2];
                items[0] = new Opc.Da.Item();
                items[0].ItemName = "Random.Int1";
                items[1] = new Opc.Da.Item();
                items[1].ItemName = "Random.Time";
                items = group.AddItems(items);

                    group.DataChanged += new Opc.Da.DataChangedEventHandler(OnTransactionCompleted);

            }

            public void OnTransactionCompleted(object group, object hReq, Opc.Da.ItemValueResult[] items)
            {

                for (int i = 0; i < items.GetLength(0); i++)
                {

                    try
                    {

                        string a = items[i].Value.ToString();
                        string b = items[i].ItemName;
                        string c = items[i].Key;

                        MySqlConnection conn = new MySqlConnection("server=localhost;user id=localhost;password=localhost;database=localhost;pooling=false"); 
                        conn.Open();
                        conn.Close();
                    }
                    catch (Exception ec)
                    {
                     MessageBox.Show(ec.Message);
                    }

                }

            }

我已经在整个代码中设置了断点,逐步完成了所有可能的事情,但仍然没有明显的导致问题。

0 个答案:

没有答案