All articles(网络文学目录) All Pictures(图片目录) All Softwares(软件目录)

 
VS2005中获取新增记录的ID方法总结_[Asp.Net教程]

Writer: delv Article type: Programming skills(编程技巧) Time: 2014/1/23 3:13:12 Browse times: 292 Comment times: 0

VS2005中获取新增记录的ID方法总结_[Asp.Net教程]


Head photo

Go homepage
Upload pictures
Write articles

VS2005中获取新增记录的ID方法总结_[Asp.Net教程]

1.使用触发器方式

CREATE TRIGGER intrig
ON sales
FOR update AS
declare @before_id (your title_id'type and length),
@after_id (your title_id'type and length)
SELECT @before_id =title_id FROM inserted
SELECT @after_id =title_id FROM deleted
SELECT title_id FROM sales where title_id=@before_id and title_id=@after_id

2.使用ID自增方式

返回最大ID就是新增的ID

3.使用SQL命令语句方式

addAnnouncementCmd.CommandText = "insert into SYS_Announcement (Title) values(@Title) ;";
addAnnouncementCmd.CommandText += "SELECT @ID=@@Identity;";
addAnnouncementCmd.CommandType = CommandType.Text;
addAnnouncementCmd.Parameters.Add("@Title", SqlDbType.NVarChar, 50);

SqlParameter oID = new SqlParameter("@ID", SqlDbType.Int);
oID.Direction = ParameterDirection.Output;
addAnnouncementCmd.Parameters.Add(oID);

try
{
addAnnouncementCmd.Connection.Open();
addAnnouncementCmd.ExecuteNonQuery();
int addID = Convert.ToInt32(addAnnouncementCmd.Parameters["@ID"].Value.ToString());//addID新增的ID
}
finally
{
command.Connection.Close();
}

4. 使用 ado.net 里面获取返回值的方法

--------------------------------------------
假设有存储过程如下:
---------------------------------------------

CREATE proc sp_uptmp @tmpName varchar(50),@srcPos varchar(255)
as

Begin TRAN
insert into t_template values(@tmpName,@srcPos)
COMMIT

return isnull(@@identity,0)
GO


------------------------------------------------------------
在 ado.net 里面获取返回值的方法为(c#):
------------------------------------------------------------
SqlConnection dbconn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand("sp_uptmp",dbconn);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter tmpName = cmd.Parameters.Add("@tmpName",SqlDbType.VarChar);
SqlParameter srcPos = _cmd.Parameters.Add("@srcPos",SqlDbType.VarChar);
SqlParameter rtnval = cmd.Parameters.Add("rval",SqlDbType.Int);

tmpName.Direction = ParameterDirection.Input;
srcPos.Direction = ParameterDirection.Input;
rtnval.Direction = ParameterDirection.ReturnValue;

tmpName.Value = "";
srcPos.Value = "";
dbconn.Open();
cmd.ExecuteNonQuery();
dbconn.Close();

tmpid = (int)rtnval.Value; //此处即为返回值

5.利用执行查询时,并返回查询所返回的结果集中第一行的第一列方法

只要把ID设为第一列,采用以下方式查询执行就可获得ID

int iKey=(int)cmd.ExecuteScalar();

来源:panyaxiong的blog




There are 0 records,
Comment:
Must be registered users to comment(必须是注册用户才能发表评论)

Disclaimer Privacy Policy About us Site Map
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.