1.OUPUT参数返回值
CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid int,@o_id bigint OUTPUT ) AS BEGIN SET NOCOUNT ON; BEGIN INSERT INTO [Order](o_buyerid ) VALUES (@o_buyerid ) SET @o_id = @@IDENTITY END END
存储过程中获得方法:
DECLARE @o_buyerid int DECLARE @o_id bigint EXEC [nb_order_insert] @o_buyerid,@o_id output
2.RETURN过程返回值
CREATE PROCEDURE [dbo].[nb_order_insert]( @o_buyerid @o_id bigint OUTPUT ) AS BEGIN SET 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 int DECLARE @o_id bigint DECLARE @result bit EXEC @result = [output
3.SELECT 数据集返回值
CREATE PROCEDURE [dbo].[nb_order_select]( @o_id int ) AS BEGIN SET NOCOUNT ON; SELECT o_id,o_buyerid FROM [Order] WHERE o_id = @o_id GO
(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["ConnStr"].ToString()); conn.open(); sqlCommand MyCommand = new sqlCommand("nb_order",conn); //存储过程名字 MyCommand.CommandType = CommandType.StoredProcedure; //指定类型为存储过程 MyCommand.Parameters.Add(new sqlParameter(@asqlDbType.Int)); MyCommand.Parameters["].Value = 10; MyCommand.Parameters.Add(@b20; MyCommand.Parameters.Add(@return"].Direction = ParameterDirection.ReturnValue; MyCommand.ExecuteNonQuery(); //执行存储过程 Response.Write(MyCommand.Parameters["].Value.ToString()); //取得return的返回值
sqlConnection conn = ConnStr"nb_orderarameters.Add(@c ParameterDirection.Output; MyCommand.ExecuteNonQuery(); Response.Write(MyCommand.Parameters["].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(@UNamearameters.AddWithValue(@UPassarameters.AddWithValue(@PassQuestionarameters.AddWithValue(@PassKeyarameters.AddWithValue(@Emailarameters.AddWithValue(@RNamearameters.AddWithValue(@Areaarameters.AddWithValue(@Addressarameters.AddWithValue(@ZipCodesarameters.AddWithValue(@Phonearameters.AddWithValue(@QQarameters.Add(@RETURN_VALUE"").Direction = ParameterDirection.ReturnValue; //指定输出参数是返回值 try { conn.open(); cmd.ExecuteNonQuery(); //执行存储过程 iRet = (int)cmd.Parameters["].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_UserAmountarameters.AddWithValue(@UIDarameters.Add(@AmountsqlDbType.Decimal).Direction=ParameterDirection.Output; //利用Add方法为其添加名称,类型和输出参数 try { conn.open(); cmd.ExecuteNonQuery(); iRet = (decimal)cmd.Parameters["].Value; //取得存储过程中的输出参数 } catch (sqlException ex) { throw ex; } finally { conn.Close(); } return iRet; }
C#取得结果集:
string sqlw = string.Format(exec sp_UserInfo {0}sqlConn.GetDataSet(sqlw).Tables[0]; static DataSet GetDataSet(string sql) { string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["].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; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。