加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer建立存储过程,方便.NET插入自增字段

发布时间:2020-12-12 13:49:44 所属栏目:MsSql教程 来源:网络整理
导读:首先,需要在数据库中创建一个表,以在test数据库创建tableNo表为例: create table tablesNo( tableName varchar ( 30 ) not null , -- 表名 num int not null -- 行数 ) 然后在数据库中 -- 可编程性 -- 存储过程 -- 新建存储过程 ,也可以在sql中执行代码如下

首先,需要在数据库中创建一个表,以在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");  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读