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;
}
下面是我写得代码:有些方法是直接调用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;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货