Public Function RunStoreProcReturn(ByVal sStoreProduceName As String, Optional ByRef colParms As Collection = Nothing, Optional ByVal errorpage As Page = Nothing) As DataSet
        strsqlconn = New SqlConnection(STRCONN)
        Dim newpage As New Page()
        Dim ds As New DataSet()
        Dim sqlAdapt As New SqlDataAdapter()
        Dim sqlCMD As New SqlCommand(sStoreProduceName, strsqlconn)
        sqlCMD.CommandType = CommandType.StoredProcedure
        If Not IsNothing(colParms) Then
            Dim oParm As SqlClient.SqlParameter
            For Each oParm In colParms
                sqlCMD.Parameters.Add(oParm)
            Next
        End If        'Dim myParm As SqlClient.SqlParameter = sqlCMD.Parameters.Add("ReturnValue", SqlDbType.Int)
        'myParm.Direction = ParameterDirection.ReturnValue
        '  sqlCMD.Transaction = strsqlconn.BeginTransaction()
        Try
            strsqlconn.Open()
            sqlAdapt.SelectCommand = sqlCMD
sqlAdapt.Fill(ds)
            Return ds
            '   sqlCMD.ExecuteNonQuery()
            '   sqlCMD.Transaction.Commit()            'Return myParm.Value '  sqlCMD.Parameters("@Balance").Value
        Catch e As Exception
            '  sqlCMD.Transaction.Rollback()
        Finally
            strsqlconn.Close()
        End Try
    End Function

解决方案 »

  1.   

    你把你的sqlparents以集合的形式传递即来即可。
      

  2.   

    如果为空
    应该插入DBNull.Value
      

  3.   

    TO  xhan2000(popeye.net) 你好,关于“如何处理可以选填的字符串的存储过程”的问题
    我按照你的做法,插入DnNull.Value时出现下面错误,请问如何解决
    BC30311: 类型“System.DBNull”的值无法转换为“String”。
      

  4.   

    TO  xhan2000(popeye.net)
    对不起,我在提问时写错了,可是我做如下处理时:
    If Not Info.N_keyword is DBNull.Value  then
    comd.Parameters.Add(New OleDbParameter("@N_keyword", OleDbType.Char))
            comd.Parameters("@N_keyword").Value = Fm.HTMLcode(Fm.badString(Info.N_keyword))
    Else
    comd.Parameters("@N_keyword").Value = Dbnull.value
    End If
    提示错误@N_keyword没有默认值?