整理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
相关文章
|
1天前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
15 3
|
18天前
|
SQL 网络协议 数据库连接
已解决:连接SqlServer出现 provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程【C#连接SqlServer踩坑记录】
本文介绍了解决连接SqlServer时出现“provider: Shared Memory Provider, error: 0 - 管道的另一端上无任何进程”错误的步骤,包括更改服务器验证模式、修改sa用户设置、启用TCP/IP协议,以及检查数据库连接语句中的实例名是否正确。此外,还解释了实例名mssqlserver和sqlserver之间的区别,包括它们在默认设置、功能和用途上的差异。
|
2月前
|
存储 SQL 数据库
如何使用 SQL Server 创建存储过程?
【8月更文挑战第31天】
81 0
|
4月前
|
存储 机器学习/深度学习 SQL
SQLSERVER存储过程语法详解
SQLSERVER存储过程语法详解
212 0
|
5月前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
42 1
|
25天前
|
SQL 数据库
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
SQL Server附加数据库出现错误823,附加数据库失败。数据库没有备份,无法通过备份恢复数据库。 SQL Server数据库出现823错误的可能原因有:数据库物理页面损坏、数据库物理页面校验值损坏导致无法识别该页面、断电或者文件系统问题导致页面丢失。
88 12
数据库数据恢复—SQL Server数据库报错“错误823”的数据恢复案例
|
20天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
26 4
|
1月前
|
SQL 存储 数据管理
SQL Server数据库
SQL Server数据库
43 11
|
2月前
|
SQL 数据库
Microsoft SQL Server 2014如何来备份数据库
Microsoft SQL Server 2014如何来备份数据库
169 3
|
2月前
|
SQL 关系型数据库 MySQL
SQL数据库和 SQLserver数据库
【8月更文挑战第19天】SQL数据库和 SQLserver数据库
48 2