比如,记录中有四个字段,其中gi_id是自动增长的CREATE PROCEDURE pro_addgoods
@u_name nvarchar(50),
@gi_click int,
@gi_title nvarchar(50)
As
insert into t_goods_info(u_name,gi_click,gi_title) values(@u_name,@gi_click,@gi_title)我想获得添加成功后的gi_id,是否可以在上述存储过程中加一个输出参数,输出gi_id?
该如何添加这个输出参数?同时添加后如何赋值,如何在后台代码中执行存储过程的时候获得该参数?下面是执行存储过程的代码:SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ershouConnectionString"].ToString());
//声明执行存储过程的SqlCommand
SqlCommand scd_sel = new SqlCommand("pro_addgoods", conn);
scd_sel.CommandType = CommandType.StoredProcedure;
//给存储过程的参数赋值
SqlParameter spa;
spa = scd_sel.Parameters.Add("@u_name", SqlDbType.NVarChar, 50);
spa.Direction = ParameterDirection.Input;
spa.Value = Session["account"].ToString();
spa = scd_sel.Parameters.Add("@gi_click", SqlDbType.Int, 4);
spa.Direction = ParameterDirection.Input;
spa.Value = 0;
spa = scd_sel.Parameters.Add("@gi_title", SqlDbType.NVarChar, 50);
spa.Direction = ParameterDirection.Input;
spa.Value = txttitle.Text;
//执行存储过程
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
scd_sel.ExecuteNonQuery();
scd_sel.Dispose(); //释放资源
}
catch (SqlException ae)
{
throw (ae);
}
conn.Dispose();
@u_name nvarchar(50),
@gi_click int,
@gi_title nvarchar(50)
As
insert into t_goods_info(u_name,gi_click,gi_title) values(@u_name,@gi_click,@gi_title)我想获得添加成功后的gi_id,是否可以在上述存储过程中加一个输出参数,输出gi_id?
该如何添加这个输出参数?同时添加后如何赋值,如何在后台代码中执行存储过程的时候获得该参数?下面是执行存储过程的代码:SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ershouConnectionString"].ToString());
//声明执行存储过程的SqlCommand
SqlCommand scd_sel = new SqlCommand("pro_addgoods", conn);
scd_sel.CommandType = CommandType.StoredProcedure;
//给存储过程的参数赋值
SqlParameter spa;
spa = scd_sel.Parameters.Add("@u_name", SqlDbType.NVarChar, 50);
spa.Direction = ParameterDirection.Input;
spa.Value = Session["account"].ToString();
spa = scd_sel.Parameters.Add("@gi_click", SqlDbType.Int, 4);
spa.Direction = ParameterDirection.Input;
spa.Value = 0;
spa = scd_sel.Parameters.Add("@gi_title", SqlDbType.NVarChar, 50);
spa.Direction = ParameterDirection.Input;
spa.Value = txttitle.Text;
//执行存储过程
if (conn.State == ConnectionState.Closed)
conn.Open();
try
{
scd_sel.ExecuteNonQuery();
scd_sel.Dispose(); //释放资源
}
catch (SqlException ae)
{
throw (ae);
}
conn.Dispose();
解决方案 »
- 监视页面一部分内容的变动
- 很简单的问题:怎么在sql语句中获得label的值。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
- 偶滴神哪,怎么数据读不出来呀?
- 调试实例出错,请高手帮忙啊!
- 在asp.net中如何判断客户端时候安装了framework.net环境?
- 求asp.net 调java的代码
- 怎么实现,弹出一个对话框后,点确定.会转到另一个页面的功能呀
- DropDownList绑定后,为什么提交的总是第一项内容?
- 关于ADO.NET的效率问题
- httpwebrequest数据提交的问题
- 如何访问FormView控件模板中的控件
- gridview linkbutton
select @@identity
通过存储过程参数获取output 值
using(SqlConnection connection = new SqlConnection(""))
{
using (SqlCommand insertCommand = connection.CreateCommand())
{
insertCommand.CommandText = "INSERT INTO Tb(u_name) VALUES (@u_name) SET @ID = SCOPE_IDENTITY()"; SqlParameter NumberParameter = new SqlParameter("@u_name", SqlDbType.Int);
NumberParameter.Value = MyNumber;
insertCommand.Parameters.Add(NumberParameter);
insertCommand.ExecuteNonQuery(); SqlParameter b= new SqlParameter("@ID", SqlDbType.Int);
b.Direction = ParameterDirection.Output;
insertCommand.Parameters.Add(b); id = (int)b.Value;
}
}
@u_name nvarchar(50),
@gi_click int,
@gi_id int output,
@gi_title nvarchar(50)
As
insert into t_goods_info(u_name,gi_click,gi_title) values(@u_name,@gi_click,@gi_title)
SET @gi_click = @@IDENTITY
set @gi_id = @@IDENTITY
返回最后插入的标识值。