private Tanks.TanksAPI zz815 = new Tanks.TanksAPI();//定义接口,此接口由别人提供(在vc++ 6.0环境下写的,在此环境下取数据非常快。可是到了vs2008环境下取数据慢的要死,取12条数据需要2分钟。郁闷。)
下面是我写得代码:有些方法是直接调用Tanks中的方法。
        public static bool OnConnectYeweiyi = false;
        private DataTable dt = null;
         
        ///测试服务器是否连接成功
        private bool OnConnectYeweiyiServer()
        {
            string zz_server = "10.190.46.20";
            short nPort = 7008;            return zz815.StartServer(ref zz_server, ref nPort);
        }        ///将所取得数据加载到datatable,我估计取数据慢的原因在此方法中。
        private DataTable GetYeWeiYiData()
        {            try
            {
                DataTable dt = new DataTable();
                if (OnConnectYeweiyiServer())
                {
                    short ColNo = 0, TankNo = 0;
                    dt.Columns.Add("罐号", typeof(string));
                    dt.Columns.Add("品名", typeof(string));
                    dt.Columns.Add("油水总高", typeof(string));
                    //dt.Columns.Add("油罐高度", typeof(string));
                    dt.Columns.Add("水高", typeof(string));
                    //dt.Columns.Add("高高报警值", typeof(string));
                    //dt.Columns.Add("低低报警值", typeof(string));
                    dt.Columns.Add("总体积", typeof(string));
                    dt.Columns.Add("水体积", typeof(string));
                    dt.Columns.Add("油品体积", typeof(string));
                    dt.Columns.Add("计量温度", typeof(string));
                    dt.Columns.Add("视密度", typeof(string));
                    dt.Columns.Add("标准密度", typeof(string));
                    dt.Columns.Add("VCF", typeof(string));
                    dt.Columns.Add("静压容量", typeof(string));
                    dt.Columns.Add("浮盘重量", typeof(string));
                    dt.Columns.Add("罐存量", typeof(string));
                    //dt.Columns.Add("压力", typeof(string));                    //dt.Columns.Add("总质量", typeof(string));                    for (short i = 1; i < 13; i++)
                    {
                        TankNo = i;
                        string strRealData = zz815.GetData(ref TankNo, ref ColNo);//调用Tanks中的方法
                        string[] sArrRealData = strRealData.Split(';');
                        DataRow dr = dt.NewRow();
                        dr["罐号"] = sArrRealData[0];
                        dr["品名"] = sArrRealData[1];
                        //dr["油罐高度"] = sArrRealData[2];
                        dr["油水总高"] = sArrRealData[6];//
                        dr["水高"] = sArrRealData[3];//
                        //dr["高高报警值"] = sArrRealData[4];
                        //dr["低低报警值"] = sArrRealData[5];
                        dr["总体积"] = sArrRealData[14];//
                        dr["水体积"] = sArrRealData[13];//
                        dr["油品体积"] = sArrRealData[9];//
                        dr["计量温度"] = sArrRealData[7];//
                        dr["视密度"] = sArrRealData[12];//
                        dr["标准密度"] = sArrRealData[8];//
                        dr["VCF"] = sArrRealData[17];//
                        dr["静压容量"] = sArrRealData[18];//
                        dr["浮盘重量"] = sArrRealData[16];//
                        dr["罐存量"] = sArrRealData[10];//
                        //dr["压力"] = sArrRealData[11];
                        //dr["总质量"] = sArrRealData[15];                        dt.Rows.Add(dr);
                    }
                    this.dt = dt;
                }
                return dt;
            }
            catch
            {
                return null;
            }
        }        public DataTable YeWeiYiList
        {
            get
            {
                if (OnConnectYeweiyi)
                {
                    return GetYeWeiYiData();
                }
                else
                {
                    if (this.OnConnectYeweiyiServer())
                        return GetYeWeiYiData();
                    else
                        return null;
                }
            }
        }
 
        ///将所取得数据绑定到datagridview中。
        public void LoadYeWeiYi()
        {
            base.ShowListDataGridView.Columns.Clear();
            base.ShowListDataGridView.DataSource = this.YeWeiYiList;
            base.ShowListDataGridView.AllowUserToAddRows = false;
        }