在从服务器接收结果时发生传输级错误问题:在从服务器接收结果时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 信号灯超时时间已到)
 C# WinForm代码如下:
private void buttonEx4_Click(object sender, EventArgs e)
{
     DateTime dtmBegin = DateTime.Now; 
     SqlConnection con = new
     SqlConnection("server=abc.gicp.net;database=MyDB;uid=sa;pwd=qf");
            con.Open();
            SqlCommand com = new SqlCommand("select * from inventory", con);
// SqlCommand com = new SqlCommand("select top 1 * from inventory", con); //只读一条没问题
            com.CommandTimeout = 0;
            SqlDataAdapter sda = new SqlDataAdapter(com);
            DataSet ds = new DataSet();
            sda.Fill(ds);//打了下断点,执行到这里就出错了
            DataTable dt = new DataTable();
            dt = ds.Tables[0];
            gridViewEx2.DataSource = dt;
            con.Close();
            DateTime dtmEnd = DateTime.Now;
            MessageBox.Show((dtmEnd - dtmBegin).ToString());
}说明:1.在不换电脑和网络环境的情况下, 数据总条数为2640条,只读1条或10条没问题;用别人用VB写的软件调取同样的数据虽然慢些,但总能正常调出全部2640条数据,但用C#调取数据时就出错,请朋友指点下.
     2.数据服务器上安装的是花生壳,开通了端口1433,Ping花生壳正常.
     3.用Sql Server查询分析器直接连接数据服务器上的数据库,并执行"select * from inventory"也能调出数据.
     4.数据库为SQL SERVER 2000,并已打SP4包

解决方案 »

  1.   

    我用SQL管理器也连接不到你的abc.gicp.net,你这让我怎么测试?
      

  2.   

    com.CommandTimeout = 0;
      SqlDataAdapter sda = new SqlDataAdapter(com);
      DataSet ds = new DataSet();
    ------------------------------
    那就在dataset 处理行,估计是有字符过长了。
      

  3.   

    补充: 我用花生壳解析到的服务器的IP地址(这个就是服务器的外网IP)组成连接字符串,也存在上述同样的问题.所以花生壳的问题可以排除.
        另外,同样用花生壳解析,并不是所有时侯不成功.单条记录成功率100%