如何在C#中创建存储过程,然后*将*保存到SQL Server?
我一直在这个墙上撞了一会儿。 我知道你可以用C#代码创建一个存储过程,那个位就行。 但我无法弄清楚的是,然后我可以将该存储过程保存 到SQL Server上 – 但是通过C#代码完成了吗?
场景是:我想通过代码创建测试数据库,然后我想将存储过程添加到新创建的测试数据库(服务器端) – 再次,所有这些都是通过相同的C#代码项目完成的。
是的,这是可能的。 在这里,我给你一个示例。
public partial class InitialEntities : DbMigration { public override void Up() { CreateStoredProcedure( "dbo.InsertEmployee", p => new { Code = p.String(), Name = p.String(), DepartmentId = p.Int(), }, body: @"INSERT [dbo].[EmployeeMasters]([Code], [Name], [DepartmentId]) VALUES (@Code, @Name, @DepartmentId) DECLARE @EmployeeId int SELECT @EmployeeId = [EmployeeId] FROM [dbo].[EmployeeMasters] WHERE @@ROWCOUNT > 0 AND [EmployeeId] = scope_identity() SELECT t0.[EmployeeId] FROM [dbo].[EmployeeMasters] AS t0 WHERE @@ROWCOUNT > 0 AND t0.[EmployeeId] = @EmployeeId" ); CreateStoredProcedure( "dbo.UpdateEmployee", p => new { EmployeeId = p.Int(), Code = p.String(), Name = p.String(), DepartmentId = p.Int(), }, body: @"UPDATE [dbo].[EmployeeMasters] SET [Code] = @Code, [Name] = @Name, [DepartmentId] = @DepartmentId WHERE ([EmployeeId] = @EmployeeId)" ); CreateStoredProcedure( "dbo.DeleteEmployee", p => new { EmployeeId = p.Int(), }, body: @"DELETE [dbo].[EmployeeMasters] WHERE ([EmployeeId] = @EmployeeId)" ); } public override void Down() { DropStoredProcedure("dbo.DeleteEmployee"); DropStoredProcedure("dbo.UpdateEmployee"); DropStoredProcedure("dbo.InsertEmployee"); } }
没有entity framework
StringBuilder sbSP = new StringBuilder(); sbSP.AppendLine("CREATE PROCEDURE [spInsertADAuthorization] @AD_Account varchar(255),@AD_SID varchar(255),@AD_EmailAddress varchar(255),@DateImported datetime,@Active bit AS BEGIN SET NOCOUNT ON; INSERT INTO AD_Authorization (AD_Account, AD_SID, AD_EmailAddress, DateImported, Active) VALUES (@AD_Account,@AD_SID,@AD_EmailAddress,@DateImported,@Active) END"); using (SqlConnection connection = new SqlConnection(ConnectionString)) { using (SqlCommand cmd = new SqlCommand(sbSP.ToString(), connection)) { connection.Open(); cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); connection.Close(); } }
使用entityframework通过C#创建存储过程
通过C#创建存储过程而不使用entityframework
是。 您在字符串中使用通常的CREATE PROCEDURE
文本,然后通过SqlCommand执行它,因为用户当然有权存储过程。 阅读这个其他答案,因为它有一些关于GO
和USE
细节,这些细节通常用于创建sprocs(并且会在C#中给你带来麻烦)
上述就是C#学习教程:如何在C#中创建存储过程,然后*将*保存到SQL Server?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1014106.html