首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

怎么修改 存储过程 返回类型

2013-08-04 
如何修改 存储过程 返回类型sqlcreate procedure ForDerive (@int int, @nvarchar nvarchar(10), @numeric

如何修改 存储过程 返回类型
sql
create procedure ForDerive (@int int, @nvarchar nvarchar(10), @numeric numeric)

c#


            using (SqlConnection con = new SqlConnection(cs))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("ForDerive", con);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                SqlCommandBuilder.DeriveParameters(cmd);
                foreach (SqlParameter p in cmd.Parameters)
                {
                    Console.WriteLine("{0} - {1}", p.ParameterName, p.DbType);
                }
                con.Close();
            } 
Output:

@RETURN_VALUE - Int32
@int - Int32
@nvarchar - String
@numeric - Decimal

提问:
@RETURN_VALUE - Int32,这里默认返回类型是int,要如何才能修改为其他类型,比如 nvarchar(10)
存储过程 返回文本值
[解决办法]

引用:
sql
create procedure ForDerive (@int int, @nvarchar nvarchar(10), @numeric numeric)

c#


            using (SqlConnection con = new SqlConnection(cs))
            {


                con.Open();
                SqlCommand cmd = new SqlCommand("ForDerive", con);
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                SqlCommandBuilder.DeriveParameters(cmd);
                foreach (SqlParameter p in cmd.Parameters)
                {
                    Console.WriteLine("{0} - {1}", p.ParameterName, p.DbType);
                }
                con.Close();
            } 
Output:

@RETURN_VALUE - Int32
@int - Int32
@nvarchar - String
@numeric - Decimal

提问:
@RETURN_VALUE - Int32,这里默认返回类型是int,要如何才能修改为其他类型,比如 nvarchar(10)


这里的@RETURN_VALUE是调用存储过程SQL SERVER返回的一个参数,这个是不可以改的.
你只需要把你定义的存储过程参数传递给过程就可以了.
DECLARE@return_value int

EXEC@return_value = [dbo].[ForDerive]
@int = 1,
@nvarchar = '',
                @numeric = 10

SELECT'Return Value' = @return_value
你用C#调用过程时:
using (SqlConnection con = new SqlConnection(cs))
{
    con.Open();
    SqlCommand cmd = new SqlCommand("ForDerive", con);
    cmd.CommandType = System.Data.CommandType.StoredProcedure;
    SqlCommandBuilder.DeriveParameters(cmd);
    cmd.Parameters.RemoveAt(0);
    cmd.Parameters[0].Value = 1;
    cmd.Parameters[1].Value = "";
    cmd.Parameters[2].Value = 10;
   
    con.Close();


热点排行