CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerID int,@o_ID bigint OUTPUT)ASBEGINSET NOCOUNT ON;BEGININSERT INTO [Order](o_buyerID )VALUES (@o_buyerID )SET @o_ID = @@IDENTITYENDEND
存储过程中获得方法:
DECLARE @o_buyerID intDECLARE @o_ID bigintEXEC [nb_order_insert] @o_buyerID,@o_ID output
2.RETURN过程返回值
CREATE PROCEDURE [dbo].[nb_order_insert](@o_buyerID @o_ID bigint OUTPUT)ASBEGINSET NOCOUNT ON;IF(EXISTS(SELECT * FROM [Shop] WHERE [s_ID] = @o_buyerID ))BEGIN INSERT INTO [Order](o_buyerID ) VALUES (@o_buyerID ) SET @o_ID = @@IDENTITY RETURN 1 — 插入成功返回1 END ELSE 0 — 插入失败返回0 END
存储过程中的获取方法
DECLARE @o_buyerID intDECLARE @o_ID bigintDECLARE @result bitEXEC @result = [output
3.SELECT 数据集返回值
CREATE PROCEDURE [dbo].[nb_order_select](@o_ID int)ASBEGINSET NOCOUNT ON;SELECT o_ID,o_buyerID FROM [Order]WHERE o_ID = @o_IDGO
存储过程中的获取方法
(1)、使用临时表的方法
CREATE table [dbo].[Temp]([o_ID] [bigint] IDENTITY(1,1) NOT FOR REPliCATION NOT NulL,[o_buyerID] [int] NOT NulL)INSERT [Temp] EXEC [nb_order_select] @o_ID– 这时 Temp 就是EXEC执行SELECT 后的结果集SELECT * FROM [Temp]DROP [Temp] — 删除临时表
1.获取Return返回值
sqlConnection conn = new sqlConnection(ConfigurationManager.ConnectionStrings[@H_403_186@"ConnStr@H_403_186@"].ToString());conn.open();sqlCommand MyCommand = new sqlCommand(@H_403_186@"@H_403_186@nb_order@H_403_186@",conn); //存储过程名字MyCommand.CommandType = CommandType.StoredProcedure; //指定类型为存储过程MyCommand.Parameters.Add(new sqlParameter(@H_403_186@@a].Value = 10;MyCommand.Parameters.Add(@b20;MyCommand.Parameters.Add(@return@H_403_186@"].Direction = ParameterDirection.ReturnValue;MyCommand.ExecuteNonquery(); //执行存储过程Response.Write(MyCommand.Parameters[@H_403_186@"].Value.ToString()); //取得return的返回值
2.获取Output输出参数值
sqlConnection conn = ConnStr@H_403_186@"nb_order@c@H_403_186@ ParameterDirection.Output;MyCommand.ExecuteNonquery();Response.Write(MyCommand.Parameters[@H_403_186@"].Value.ToString()); //指定取得存储过程的返回值
C#接收存储过程返回值:
public static int User_Add(User us) { int iRet; sqlConnection conn = new sqlConnection(Conn_Str); sqlCommand cmd = User_Add AdDWithValue可以指定名称和值,而Add需要指定名称,类型,再给value cmd.Parameters.AdDWithValue(@H_403_186@@Uname).Direction = ParameterDirection.ReturnValue; //指定输出参数是返回值 try { conn.open(); cmd.ExecuteNonquery(); //执行存储过程 iRet = (int)cmd.Parameters[@H_403_186@"].Value; //取得return的值 } catch (sqlException ex) { throw ex; } finally { conn.Close(); } return iRet; }
C#接收存储过程的输出参数:
decimal Cart_UserAmount(int UID) { decimal iRet; sqlConnection conn = new sqlConnection(Conn_Str); sqlCommand cmd = Cart_UserAmountParameterDirection.Output; //利用Add方法为其添加名称,类型和输出参数 try { conn.open(); cmd.ExecuteNonquery(); iRet = (decimal)cmd.Parameters[@H_403_186@"].Value; //取得存储过程中的输出参数 } catch (sqlException ex) { throw ex; } finally { conn.Close(); } return iRet; }
C#取得结果集:
string sqlw = string.Format(@H_403_186@exec sp_UserInfo {0}0]; static DataSet GetDataSet(string sql) { string connStr = System.Configuration.ConfigurationManager.ConnectionStrings[@H_403_186@"].ToString(); sqlConnection conn = new sqlConnection(connStr); sqlCommand cmd = new sqlCommand(sql,conn); sqlDataAdapter da = new sqlDataAdapter(cmd); //直接用sqlDataAdapter将结果集取出来放入dataset中 DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); cmd.dispose(); return ds; }总结
以上是内存溢出为你收集整理的SqlServer获取存储过程的返回值全部内容,希望文章能够帮你解决SqlServer获取存储过程的返回值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)