Dim sql_connect As SqlConnection
        Dim sql_data As SqlDataAdapter
        Dim st_connect As String = WebConfigurationManager.AppSettings("ConnectionString")
        Dim st_bh As String
        Dim dl_bh As New SqlParameter
        sql_connect = New SqlConnection(st_connect)
        sql_connect.Open()
        sql_data = New SqlDataAdapter("pro_zcbh", sql_connect)
        sql_data.SelectCommand.CommandType = CommandType.StoredProcedure
        dl_bh.ParameterName = "@st_bh"
        dl_bh.SqlDbType = SqlDbType.VarChar
        sql_data.SelectCommand.Parameters.Add(dl_bh)
        dl_bh.Direction = ParameterDirection.Output
        sql_data.SelectCommand.ExecuteNonQuery()
        st_bh = dl_bh.Value
        Return st_bh

解决方案 »

  1.   

    String[0]: Size 属性具有无效大小值 0。 
      

  2.   

    嗯,返回有字符串,存储过程我从查询分析器里调试能返回数据
    declare @st_bh1 varchar(50)
    exec pro_zcbh  @st_bh1print @st_bh1
    返回
    00121213
      

  3.   

    哦是输出参数,我看你过程没有定义 output 嘛?
      

  4.   

    试试设置一下dl_bh参数有Size属性,如果不设置,默认可能是0
    dl_bh.ParameterName = "@st_bh" 
    dl_bh.SqlDbType = SqlDbType.VarChar 
    dl_bh.Size=50
      

  5.   

     
            sql_data.SelectCommand.Parameters.Add(dl_bh) 
            dl_bh.Direction = ParameterDirection.Output 
    最后一句应该放在前面一点吧
    是不是应该在设置为输出参数之后再添加到参数列表里面呢?