首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

执行带OUTPUT参数(String)的存储过程得不到返回值解决方法

2012-04-15 
执行带OUTPUT参数(String)的存储过程得不到返回值请问下各位大侠这个问题如何解决?存储过程:SQL codeUSE [

执行带OUTPUT参数(String)的存储过程得不到返回值
请问下各位大侠这个问题如何解决?
存储过程:

SQL code
USE [Master]GO/****** Object:  StoredProcedure [dbo].[Proc_Get_String]    Script Date: 03/19/2012 11:13:58 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc [dbo].[Proc_Get_String]@Type nvarchar(10),@FileName nvarchar(20) outputas begin    set @FileName=@Type+'_120319001.txt'end 

执行结果:
SQL code
declare @rtn nvarchar(20)exec proc_get_string 'FA',@rtn outputselect @rtn返回值:FA_120319001.txt

VS2005代码:
VB.NET code
         Dim cmd As New SqlCommand        Dim Conn As New SqlConnection        Dim vFilename As String                Try            Conn.ConnectionString = ConnectionString            Conn.Open()            With cmd                .CommandText = "Proc_Get_String"                .CommandType = CommandType.StoredProcedure                .CommandTimeout = 100                .Connection = Conn                .Parameters.AddWithValue("@TYPE", "FA")                .Parameters.AddWithValue("@FILENAME", "")                .Parameters("@FILENAME").Direction = ParameterDirection.Output            End With            cmd.ExecuteNonQuery()            vFilename = cmd.Parameters("@FILENAME").Value.ToString返回值:vFilename=""



[解决办法]
看不出什么问题

我一般这么写,不好意思是C#代码
C# code
            string result=0;            SqlConnection cn = new SqlConnection("連接字符串");            SqlCommand cmd = new SqlCommand("Proc_Get_String",cn);            cmd.CommandType = CommandType.StoredProcedure;            cmd.Parameters.Add("@@FILENAME", SqlDbType.Nvarchar).Direction= ParameterDirection.Output;            try            {                cn.Open();                cmd.ExecuteNonQuery();                result = cmd.Parameters["@@FILENAME"].Value.ToString();            }            finally            {                cn.Close();                cn.Dispose();                cmd.Dispose();            }
[解决办法]
指定参数的数据长度试一试

[解决办法]
.Parameters.AddWithValue("@FILENAME", "")
这半句去掉试试
[解决办法]
VB.NET code
With cmd                .CommandText = "TestOutput"                .CommandType = CommandType.StoredProcedure                .CommandTimeout = 100                .Connection = Conn                .Parameters.AddWithValue("@Type", "FA")                .Parameters.AddWithValue("@FileName", "")                '--经过测试,要给参数定义他的size就可以了。                .Parameters("@Type").Size = 10                .Parameters("@FileName").Size = 20                '--                .Parameters("@FileName").Direction = ParameterDirection.Output            End With
[解决办法]
VB.NET code
With cmd                .CommandText = "TestOutput"                .CommandType = CommandType.StoredProcedure                .CommandTimeout = 100                .Connection = Conn                .Parameters.AddWithValue("@Type", "FA")                .Parameters.AddWithValue("@FileName", "")                '--经过测试,要给参数定义他的size就可以了。                .Parameters("@Type").Size = 10                .Parameters("@FileName").Size = 20                '--                .Parameters("@FileName").Direction = ParameterDirection.Output            End With 

热点排行