zoukankan      html  css  js  c++  java
  • SqlServer建立存储过程,方便.NET插入自增字段

    首先,需要在数据库中创建一个表,以在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");  
  • 相关阅读:
    window.top.location
    JS 退出系统并跳转到登录界面的实现代码
    CSS position 属性
    在网页中插入时间 自动更新
    CKeditor 配置使用
    使用JspSmart文件上传
    复制的web工程为什么不能部署到tomcat
    JDBC 4 PreparedStatement 与Statement 的区别
    每周会商自动化
    晚上的亲子时光
  • 原文地址:https://www.cnblogs.com/swjian/p/6360290.html
Copyright © 2011-2022 走看看