首先,需要在資料庫中創建一個表,以在test資料庫創建tableNo表為例: 然後在資料庫中 --> 可編程性 --> 存儲過程 --> 新建存儲過程 ,也可以在sql中執行代碼如下: 其次在.NET中的DAL層創建一個CommonService類,代碼如下: using System.Data; ...
首先,需要在資料庫中創建一個表,以在test資料庫創建tableNo表為例:
create table tablesNo ( tableName varchar(30) not null, --表名 num int not null --行數 )
然後在資料庫中 --> 可編程性 --> 存儲過程 --> 新建存儲過程 ,也可以在sql中執行代碼如下:
USE [test] --資料庫名 GO /****** Object: StoredProcedure [dbo].[usp_Id] Script Date: 2017/2/1 星期三 下午 6:48:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO create proc [dbo].[usp_Id] --新建一個存儲過程名為usp_Id @tableName nvarchar(50), @id int output as declare @erro int set @erro=0 begin transaction select @id=num+1 from tablesNo where tableName=@tableName set @erro=@erro+@@ERROR update tablesNo set num=num+1 where tableName=@tableName set @erro=@erro+@@ERROR if(@erro=0) begin commit transaction end else
begin rollback transaction
end
其次在.NET中的DAL層創建一個CommonService類,代碼如下:
using System.Data;
using System.Data.SqlClient;
public class CommonService { public static int GetId(string tableName) //存儲過程ID { int id = 0; string sql = "usp_Id"; SqlParameter par1 = new SqlParameter("@tableName", tableName); par1.Direction = ParameterDirection.Input; SqlParameter par2 = new SqlParameter("@id", SqlDbType.Int); par2.Direction = ParameterDirection.Output; SqlConnection con = null; SqlCommand cmd = null; try { con = SqlHelper.Open(); cmd = new SqlCommand(); cmd.Connection = con; cmd.CommandText = sql; cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add(par1); cmd.Parameters.Add(par2); cmd.ExecuteNonQuery(); id = Convert.ToInt32(cmd.Parameters["@id"].Value); } catch (SqlException ex) { } finally { con.Close(); } return id; } }
應用方法如下:
Id = CommonService.GetId("ClickAccessAmount");