C# 关于Insert后,返回所添加数据的ID的问题

从网上找了些方法,但ID根本取不出来。//----------DAL----------publicstaticintInsertData(stringstrName,s... 从网上找了些方法,但ID根本取不出来。

//----------DAL----------
public static int InsertData(string strName, string strPass)
{
SqlParameter[] prms = new SqlParameter[2];
prms[0] = new SqlParameter("@A_name", strName);
prms[1] = new SqlParameter("@A_pass", intPass);
return Convert.ToInt32((new SqlHelper()).ExecuteScalar("A_Insert", prms));
}

//----------Sql----------
ALTER procedure A_Insert
@A_name varchar(20),
@A_pass varchar(20),
@A_id int output
AS
insert into [File]
(F_nName,F_oName,F_size)
values
(@F_nName,@F_oName,@F_size)
begin tran
select @F_id = @@identity
commit tran
RETURN

//----------SqlHelper----------
public object ExecuteScalar(string strSql,params SqlParameter[] parameters)
{
conn = new SqlConnection(strConn);
SqlCommand cmd = new SqlCommand(strSql, conn);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter pa in parameters)
cmd.Parameters.Add(pa);
conn.Open();
object result = cmd.ExecuteScalar();
conn.Close();
return result;
}
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
avenger19
2008-04-19 · TA获得超过1298个赞
知道小有建树答主
回答量:972
采纳率:0%
帮助的人:1040万
展开全部
用存储过程
插入操作完成后加一个Select @@Identity,返回的就是刚插入那一行的主键
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Nathan2018
2008-04-21 · 超过28用户采纳过TA的回答
知道答主
回答量:225
采纳率:0%
帮助的人:0
展开全部
使用存储过程给你返回就可以了,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式