整理sqlserver 级联更新和删除 c#调用存储过程返回值

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介:

整理一下级联更新和删除 c#调用返回值

use master 
go 
IF exists( select  1 from  sysdatabases where  name= 'temp' )
BEGIN  
     DROP DATABASE temp
END
create database temp
go
use temp
go
--drop table  ProductInfo
create table ProductInfo
(
     ProductId int   primary key ,
     ProductName varchar(20),   
)
  
create table ProductDetails
(
     id int  identity(1,1) primary key,
     num varchar(100) ,
     ProductId int ,
     foreign key (ProductId) references ProductInfo(ProductId) on  delete cascade on  update cascade
)
  
insert ProductInfo values (1, 'Think' )
insert ProductInfo values(2, 'TCL' )
insert ProductInfo values(3, 'HTC' )
  
insert ProductDetails values( 'T420' ,1)
insert ProductDetails values( 'Xo1' ,1)
insert ProductDetails values( 'TVoo1' ,2)
insert ProductDetails values( 'TPhone' ,2)
insert ProductDetails values( 'One' ,3)
insert ProductDetails values( 'Buffer' ,3)
 
  
 
 
alter table 表名
add constraint 外键名
foreign key(字段名) references 主表名(字段名)
on  delete cascade --删除
on  update cascade --更新
 
--查看现有数据
select  * from  ProductInfo
select  * from  ProductDetails
 
--更改
update ProductInfo set  ProductId=5  where  ProductName= 'Think'
select  * from  ProductInfo
select  * from  ProductDetails
 
--删除
delete from  ProductInfo where  ProductId=5
select  * from  ProductInfo
select  * from  ProductDetails

  

第一种方法:
C#代码:
protected  void  btnBack_Click( object  sender, EventArgs e)
{
         //调用存储过程
         stringconStr=ConfigurationManager.ConnectionStrings[ "NorthwindConnectionString" ].ToString();
         SqlConnection conn = new  SqlConnection(conStr);
         SqlCommand cmd = new  SqlCommand();
         cmd.CommandText = "MyProc" ;
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Connection=conn;
         conn.Open();
         SqlParameter sp = new  SqlParameter( "@ID" , SqlDbType.Int);
         sp.Value = int .Parse( "3" );
         cmd.Parameters.Add(sp);
  
         //定义输出参数
         SqlParameter returnValue = new  SqlParameter( "@returnValue" , SqlDbType.Int);
         returnValue.Direction = ParameterDirection.ReturnValue;
         cmd.Parameters.Add(returnValue);
         cmd.ExecuteNonQuery();       
         conn.Close();
  
}
存储过程如下:
create procedure MyProc
(
      @ID int
)
as
  
  return  1
  
 
go
注意,( return )这种方式 只能返加数值类型
  
第二种方法:
protected  void  btnBack_Click( object  sender, EventArgs e)
{
         //调用存储过程
         string  conStr = System.Configuration.ConfigurationManager.ConnectionStrings[ "NorthwindConnectionString" ].ToString();
         SqlConnection conn = new  SqlConnection(conStr);
         SqlCommand cmd = new  SqlCommand();
         cmd.CommandText = "MyProc" ;
         cmd.CommandType = CommandType.StoredProcedure;
         cmd.Connection=conn;
         conn.Open();
         SqlParameter sp = new  SqlParameter( "@ID" , SqlDbType.Int);
         sp.Value = int .Parse( "3" );
         cmd.Parameters.Add(sp);
  
         //定义输出参数
         sp = new  SqlParameter( "@outputValue" , SqlDbType.NVarChar,50);
         sp.Direction = ParameterDirection.Output;
         cmd.Parameters.Add(sp);
         cmd.ExecuteNonQuery();
         
         conn.Close();
  
     }
  
存储过程如下:
alter procedure MyProc
(
      @ID int ,
      @outputValue nvarchar(50) output
  
)
as
  Select @outputValue= 'aa'
go

本文转自lpxxn博客园博客,原文链接:http://www.cnblogs.com/li-peng/p/3254982.html ,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
2月前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
120 1
|
2月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
120 1
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
2月前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
60 3
|
7月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
219 3
|
1月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
36 3
|
5天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
34 12
|
1月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
52 4
|
3月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
52 2