USE [Shop]
GO
/****** 对象: StoredProcedure [dbo].[addorder] 脚本日期: 11/21/2012 22:37:13 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[addorder]
@Name nvarchar(50),
@Address nvarchar(50),
@Phone nvarchar(50),
@Mobile nvarchar(50),
@Transport nvarchar(50),
@UserId nvarchar(50)
AS
insert into Userorder (Name,Address,Phone,Mobile,Transport,UserId)values(@Name,@Address,@Phone,@Mobile,@Transport,@UserId)
RETURN @@Identity上面是个SQL的存储过程我想知道怎么才能在.net中把主键出去来啊
下面是我写的代码但是怎么取主键 SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString;
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure();
SqlParameter[] sp = new SqlParameter();
sp[1] = new SqlParameter("@Name", lblName.Text);
sp[2] = new SqlParameter("@Address",lblDetailAddress.Text);
sp[3]=new SqlParameter("@Phone",lblPhone.Text);
sp[4]=new SqlParameter("@Mobile",txtMobilePhone.Text);
sp[5]=new SqlParameter("@Transport",DropDownList1.SelectedIndex); 主要是下面的不知道怎么办啊
//Parameter sp7=new Parameter(return,TypeCode);
// sp7=
//sp[6]=new SqlParameter("@UserId",sp7);
comm.Parameters.AddRange(sp);
sp.Direction = ParameterDirection.ReturnValue;
comm.CommandText = "addorder";
GO
/****** 对象: StoredProcedure [dbo].[addorder] 脚本日期: 11/21/2012 22:37:13 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[addorder]
@Name nvarchar(50),
@Address nvarchar(50),
@Phone nvarchar(50),
@Mobile nvarchar(50),
@Transport nvarchar(50),
@UserId nvarchar(50)
AS
insert into Userorder (Name,Address,Phone,Mobile,Transport,UserId)values(@Name,@Address,@Phone,@Mobile,@Transport,@UserId)
RETURN @@Identity上面是个SQL的存储过程我想知道怎么才能在.net中把主键出去来啊
下面是我写的代码但是怎么取主键 SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString;
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandType = CommandType.StoredProcedure();
SqlParameter[] sp = new SqlParameter();
sp[1] = new SqlParameter("@Name", lblName.Text);
sp[2] = new SqlParameter("@Address",lblDetailAddress.Text);
sp[3]=new SqlParameter("@Phone",lblPhone.Text);
sp[4]=new SqlParameter("@Mobile",txtMobilePhone.Text);
sp[5]=new SqlParameter("@Transport",DropDownList1.SelectedIndex); 主要是下面的不知道怎么办啊
//Parameter sp7=new Parameter(return,TypeCode);
// sp7=
//sp[6]=new SqlParameter("@UserId",sp7);
comm.Parameters.AddRange(sp);
sp.Direction = ParameterDirection.ReturnValue;
comm.CommandText = "addorder";
@Name nvarchar(50),
@Address nvarchar(50),
@Phone nvarchar(50),
@Mobile nvarchar(50),
@Transport nvarchar(50),
@UserId nvarchar(50),
@ReturnID int=0 output --返回值
//Parameter sp7=new Parameter(return,TypeCode);
// sp7=
//sp[6]=new SqlParameter("@UserId",sp7);
comm.Parameters.AddRange(sp);
sp.Direction = ParameterDirection.ReturnValue;
comm.CommandText = "addorder";
objParas[6] = new SqlParameter("@intID", SqlDbType.Int, 4);
objParas[6].Direction = ParameterDirection.ReturnValue;
intID = Convert.ToInt32(objParas[6].Value)Cmd.Connection = Con;
Cmd.CommandText = "addorder";
Cmd.CommandType = CommandType.StoredProcedure; if (p_CmdParms != null)
{
foreach (SqlParameter objParm in p_CmdParms)
Cmd.Parameters.Add(objParm);
}
int intRet = Cmd.ExecuteNonQuery();
Cmd.Parameters.Clear();
返回的就是你新添加的id,比identity保险多了
GO
/****** 对象: StoredProcedure [dbo].[addorder] 脚本日期: 11/21/2012 22:37:13 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[addorder]
@Name nvarchar(50),
@Address nvarchar(50),
@Phone nvarchar(50),
@Mobile nvarchar(50),
@Transport nvarchar(50),
@UserId nvarchar(50)
AS
insert into Userorder (Name,Address,Phone,Mobile,Transport,UserId)values(@Name,@Address,@Phone,@Mobile,@Transport,@UserId)
RETURN @@Identity这个是数据库里面的存储过程,我怎么在.net中把@@Identity 取出并显示出来啊,求解释啊
param.Direction = ParameterDirection.ReturnValue;
_cmd.Parameters.Add(param);//执行sql语句
获取return值_cmd.Parameters[name].Value;
USE [Shop]
GO
/****** 对象: StoredProcedure [dbo].[addorder] 脚本日期: 11/22/2012 13:16:10 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[addorder]
@Name nvarchar(50),
@Address nvarchar(50),
@Phone nvarchar(50),
@Mobile nvarchar(50),
@Transport nvarchar(50),
@UserId nvarchar(50)
AS
insert into Userorder (Name,Address,Phone,Mobile,Transport,UserId)values(@Name,@Address,@Phone,@Mobile,@Transport,@UserId)
RETURN @@Identity
上面是数据库插入一行存储过程
下面是调用存储过程插入一行,但怎么才能插入这一行的同时把这一行的主键取出(主键是自增的就是上面的@@Identity,怎么才能就收啊)
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["ShopConnectionString"].ConnectionString;
conn.Open();
SqlCommand comm = new SqlCommand();
comm.Connection = conn; SqlParameter[] sp = new SqlParameter[6];
sp[0] = new SqlParameter("@Name", lblName.Text);
sp[1] = new SqlParameter("@Address", lblDetailAddress.Text);
sp[2] = new SqlParameter("@Phone", lblPhone.Text);
sp[3] = new SqlParameter("@Mobile", txtMobilePhone.Text);
sp[4] = new SqlParameter("@Transport", DropDownList1.SelectedIndex);
sp[5] = new SqlParameter("@UserId", Session["username"].ToString());
comm.Parameters.AddRange(sp);
comm.CommandText = "addorder";
comm.ExecuteNonQuery();
怎么才能得到主键的值啊