SqlParameter[] parameters =  
{
  new SqlParameter("@ID", SqlDbType.BigInt,19,ParameterDirection.Input,false,0,0,"",DataRowVersion.Current,model.ID)//编码
....
}
声明并赋值的语句在执行时发生异常,错误信息为:
System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。)
而用
SqlParameter[] parameters =  
{
  new SqlParameter("@ID", SqlDbType.BigInt,19)//编码
....
};
parameters[0].Value = model.ID;//编码
声明并赋值的就没问题。
跟踪parameters发现并无区别,请问是怎么回事呀,关键是用下面的方法,修改时太难受了!

解决方案 »

  1.   

    System.Data.SqlClient.SqlException: 在向服务器发送请求时发生传输级错误。 (provider: TCP 提供程序, error: 0 - 远程主机强迫关闭了一个现有的连接。).....这不是数据库连接出错吗,跟SqlParameter[]有啥关系啊
      

  2.   

    正在用

    SqlParameter[] parameters =   
    {
      new SqlParameter("@ID", model.ID)//编码
    ....
    }
    重新试试,看什么结果
      

  3.   

    SqlParameter[] parameters =   
    {
      new SqlParameter("@ID", model.ID)//编码
    ....
    }
    果然好用,一下子就都过去了,只是类型都是nvarchar了,不过没关系,实际上对了就行。
    ms推荐的方法害死人啊
      

  4.   

    绝对不是数据库连接出错,而是SqlParameter[]的问题,不然为什么在程序中前后都能连接上,并且采用
    SqlParameter[] parameters =   
    {
      new SqlParameter("@ID", SqlDbType.BigInt,19)//编码
    ....
    };
    parameters[0].Value = model.ID;//编码

    SqlParameter[] parameters =   
    {
      new SqlParameter("@ID", model.ID)//编码
    ....
    }
    都没任何问题,而是采用
    SqlParameter[] parameters =   
    {
      new SqlParameter("@ID", SqlDbType.BigInt,19,ParameterDirection.Input,false,0,0,"",DataRowVersion.Current,model.ID)//编码
    ....
    }
    就出错了呢?
    虽然问题好像已经解决,但是原因是什么还是不清楚,哪位知道的指点一下吧