数据库中有自增字段UID存储过程如下:CREATE PROCEDURE AddUser
(
@Username nvarchar(50),
@Email nvarchar(100),
@Password nvarchar(50),
@UserID int OUTPUT
)
AS
INSERT INTO Users
(
Username,
Email,
Password
)
VALUES
(
@Username,
@Email,
@Password
)
SELECT
@UserID = @@Identity
GO 程序如下:
SqlCommand cmd=new SqlCommand("AddUser",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Username",Username));
cmd.Parameters.Add(new SqlParameter("@Email",Email));
cmd.Parameters.Add(new SqlParameter("@Password",Password));然后如何得到刚刚插入记录的UID的值呢?
在这里我写不下去了,望大哥们指教.......
(
@Username nvarchar(50),
@Email nvarchar(100),
@Password nvarchar(50),
@UserID int OUTPUT
)
AS
INSERT INTO Users
(
Username,
Email,
Password
)
VALUES
(
@Username,
@Email,
@Password
)
SELECT
@UserID = @@Identity
GO 程序如下:
SqlCommand cmd=new SqlCommand("AddUser",conn);
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Username",Username));
cmd.Parameters.Add(new SqlParameter("@Email",Email));
cmd.Parameters.Add(new SqlParameter("@Password",Password));然后如何得到刚刚插入记录的UID的值呢?
在这里我写不下去了,望大哥们指教.......
(
@UserID int OUTPUT
@Username nvarchar(50),
@Email nvarchar(100),
@Password nvarchar(50),
)
(
@UserID int ,
@Username nvarchar(50),
@Email nvarchar(100),
@Password nvarchar(50),
)
cmd.CommandType=CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Username",Username));
cmd.Parameters.Add(new SqlParameter("@Email",Email));
cmd.Parameters.Add(new SqlParameter("@Password",Password));
cmd.parameters.add(new sqlparameter("@UserID",sqltype.int);
cmd.parameters["@userid"].direction = Direction.output;CMD执行int UID;
UID = cmd.Parameters["@userid"];
SqlCommand cmd = new SqlCommand("AddUser", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Username", Username));
cmd.Parameters.Add(new SqlParameter("@Email", Email));
cmd.Parameters.Add(new SqlParameter("@Password", Password));SqlParameter outPara = new SqlParameter("@UserID", SqlDbType.Int);
outPara.Direction = ParameterDirection.Output;
cmd.Parameters.Add(outPara);
if (cmd.ExecuteNonQuery() > -1)
{
if (outPara.Value is int)
{
int retValue = (int)outPara.Value;
}
}
获取或设置一个值,该值指示参数是只可输入、只可输出、双向还是存储过程返回值参数。属性值
ParameterDirection 值之一。默认为 Input。
Input 参数是输入参数。
InputOutput 参数既能输入,也能输出。
Output 参数是输出参数。
ReturnValue 参数表示诸如存储过程、内置函数或用户定义函数之类的操作的返回值。
F:\Office\OfferAdd.aspx.cs(228): 找不到类型或命名空间名称“Direction”(是否缺少 using 指令或程序集引用?)
(
id int identity(1,1),
[value] int
)insert into #([value]) values(100)
select scope_identity()insert into #([value]) values(100)
select scope_identity()insert into #([value]) values(100)
select scope_identity()drop table #
(
@Username nvarchar(50),
@Email nvarchar(100),
@Password nvarchar(50),
)
AS
INSERT INTO Users
(
Username,
Email,
Password
)
VALUES
(
@Username,
@Email,
@Password
) ;SELECT @@Identity
GO
直接用获取单值的方法拿值就行了~~~ 就像 SELECT psw FROM Usr WHERE Uid = 'me' 一样。