整理sqlserver 级联更新和删除 c#调用存储过程返回值
2023-09-27 14:26:23 时间
整理一下级联更新和删除 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
相关文章
- 请求大神,C#如何截取字符串中指定字符之间的部分 按指定字符串分割 一分为二 c# 去除字符串中的某个已知字符
- Word处理控件Aspose.Words功能演示:使用 C# 以编程方式保护或取消保护 Word 文档
- asp.net, c#,时间查询大全, sql语句 用于SQLServer(mssql)
- C# 防火墙操作之开启与关闭
- C#【中级篇】Winform中Application.DoEvents的使用
- C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法
- C#实现链表
- C# 快速高效率复制对象另一种方式 表达式树
- C# 里式转换
- 基于C#+SqlServer开发(WinForm)学生宿舍管理系统【100010056】
- 基于C#+SQLServer 2005实现(WinForm)校园卡消费信息系统【100010013】
- 【转发】SqlServer数据库表生成C# Model实体类SQL语句
- C#中try catch finally的执行顺序(转载)
- C# default 的两种用法