C# 如何使用SQL 2012创建存储过程?

C# 如何使用SQL 2012创建存储过程?,c#,sql,sql-server,stored-procedures,C#,Sql,Sql Server,Stored Procedures,我有一张“雇主”的桌子 我已经创建了如何使用insert stored proc插入数据 Create procedure dbo.Employers_Insert @InsuranceNumber nvarchar(10), @Ministry nvarchar(100), @Adress nvarchar(250), @PostalCode varchar(50), @Phone varchar(14), @Mobile varchar(14), @Email nvarchar(60), @

我有一张“雇主”的桌子

我已经创建了如何使用insert stored proc插入数据

Create procedure dbo.Employers_Insert
@InsuranceNumber nvarchar(10),
@Ministry nvarchar(100),
@Adress nvarchar(250),
@PostalCode varchar(50),
@Phone varchar(14),
@Mobile varchar(14),
@Email nvarchar(60),
@UserName nvarchar(50),
@Password nvarchar(50),
@ContactPerson nvarchar(250),
@EntryDate datetime,
@LastUpdateDate datetime,
@IsDeleted bit,
@Active bit
-->AS
-->BEGAIN
Insert Employers (InsuranceNumber, Ministry, Adress , PostalCode ,
Phone, Mobile , Email, UserName , [Password] , ContactPerson, EntryDate,
LastUpdateDate, IsDeleted, Active)
values (@InsuranceNumber, @Ministry, @Adress , @PostalCode ,
@Phone, @Mobile , @Email, @UserName , @[Password] , @ContactPerson, EntryDate,
@LastUpdateDate, @IsDeleted, @Active)
End
我仍然需要创建搜索、GetByID、GetByPage、GetList。。存储过程请…)
有什么帮助吗?

你的问题不是很清楚。
插入记录的正确程序代码:

CREATE PROCEDURE dbo.Employers_Insert
(
    @InsuranceNumber nvarchar(10),
    @Ministry nvarchar(100),
    @Adress nvarchar(250),
    @PostalCode varchar(50),
    @Phone varchar(14),
    @Mobile varchar(14),
    @Email nvarchar(60),
    @UserName nvarchar(50),
    @Password nvarchar(50),
    @ContactPerson nvarchar(250),
    @EntryDate datetime,
    @LastUpdateDate datetime,
    @IsDeleted bit,
    @Active bit
)
AS
BEGIN

    INSERT INTO dbo.Employers 
    (
            InsuranceNumber, Ministry, Adress, PostalCode,
            Phone, Mobile, Email, UserName, [Password], ContactPerson, EntryDate,
            LastUpdateDate, IsDeleted, ACTIVE
    )
    VALUES 
    (
            @InsuranceNumber, @Ministry, @Adress, @PostalCode,
            @Phone, @Mobile, @Email, @UserName, @Password, @ContactPerson, @EntryDate,
            @LastUpdateDate, @IsDeleted, @Active
    )

END
如果EmployerId是自动递增的,或者需要将EmployerId作为存储过程的参数传递,则还需要使用标识规范指定列EmployerId


您对dbo.Employers\u Insert或搜索所需的代码、GetByID、GetByPage、GetList有问题?

根据您的业务需求,您可以编写以下搜索过程:

CREATE PROCEDURE sp_EmployersSearch
    @Employerid int,-- Add here all the search parameters you'll send from application
    @InsuranceNumber nvarchar(10),
    @Ministry nvarchar(100),
    @Adress nvarchar(250),
    @PostalCode varchar(50),
    @Phone varchar(14),
    @Mobile varchar(14),
    @Email nvarchar(60),
    @UserName nvarchar(50),
    @Password nvarchar(50),
    @ContactPerson nvarchar(250),
    @EntryDate datetime,
    @LastUpdateDate datetime,
    @IsDeleted bit,
    @Active bit
AS
SELECT InsuranceNumber,-- Add here all the columns you want to  send back to application
       Ministry,
       Adress ,
       PostalCode ,
       Phone,
       Mobile ,
       Email,
       UserName ,
       [Password] ,
       ContactPerson,
       EntryDate,
       LastUpdateDate,
       IsDeleted,
       Active
FROM employers
WHERE     (@Employerid IS NULL OR Employerid = @Employerid)
      AND (@InsuranceNumber IS NULL OR InsuranceNumber LIKE '%' + @InsuranceNumber + '%')
      AND (@Ministry IS NULL OR Ministry LIKE '%' + @Ministry + '%')
      AND (@Adress IS NULL OR Adress LIKE '%' + @Adress + '%')
      AND (@PostalCode IS NULL OR PostalCode = @PostalCode)
      --You can add search conditions here based on your business requirements

请看一看类似ORM的实体框架或NHibernate,并完成生成过程以执行CRUD操作。是的,停止浪费时间和金钱做完全冗余的工作——这是一个“解雇我”的邀请。@TomTomTom除非你的雇主或客户坚持这样做。@ThorstenDittmar否,即使在那时。这样的东西可以完全自动化。写一个T4模板,然后自动生成这些SP。@user22387好吧,从你读到它的那一刻起,这是每个人的事情,在it世界里,当你得到报酬时,你可以称自己不称职,这难道不奇怪吗?我从未见过律师或医生说“嘿,我不称职,我犯错误没关系,因为我还在学习,现在就吃那些药吧”。请尊重你的职业。我还需要搜索代码,GetByID,GetByPage,GetList?我还需要搜索,GetByID,GetByPage,GetList..什么意思?要编写“Searh”程序,你必须指定员工搜索所需的参数。对于GetByPage,GetList必须描述更详细的业务逻辑。GetEmployerById过程可能如下所示:我的意思是GetPage S-P是如何发送页面索引,然后将其与雇主页面一起返回给我。。以10位雇主为例!谢谢,我会试试,然后告诉你:)你也可以在同一行上创建GetByID、GetByPage、GetList的过程,只要更改输入参数列表,根据您的业务需求搜索列和选定列。实际上,我已经创建了搜索存储过程和GetById存储过程。但是我不知道如何创建get by page one。。如何发送页面索引,还有一张名单!
CREATE PROCEDURE sp_EmployersSearch
    @Employerid int,-- Add here all the search parameters you'll send from application
    @InsuranceNumber nvarchar(10),
    @Ministry nvarchar(100),
    @Adress nvarchar(250),
    @PostalCode varchar(50),
    @Phone varchar(14),
    @Mobile varchar(14),
    @Email nvarchar(60),
    @UserName nvarchar(50),
    @Password nvarchar(50),
    @ContactPerson nvarchar(250),
    @EntryDate datetime,
    @LastUpdateDate datetime,
    @IsDeleted bit,
    @Active bit
AS
SELECT InsuranceNumber,-- Add here all the columns you want to  send back to application
       Ministry,
       Adress ,
       PostalCode ,
       Phone,
       Mobile ,
       Email,
       UserName ,
       [Password] ,
       ContactPerson,
       EntryDate,
       LastUpdateDate,
       IsDeleted,
       Active
FROM employers
WHERE     (@Employerid IS NULL OR Employerid = @Employerid)
      AND (@InsuranceNumber IS NULL OR InsuranceNumber LIKE '%' + @InsuranceNumber + '%')
      AND (@Ministry IS NULL OR Ministry LIKE '%' + @Ministry + '%')
      AND (@Adress IS NULL OR Adress LIKE '%' + @Adress + '%')
      AND (@PostalCode IS NULL OR PostalCode = @PostalCode)
      --You can add search conditions here based on your business requirements