博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
整理sqlserver 级联更新和删除 c#调用存储过程返回值
阅读量:5823 次
发布时间:2019-06-18

本文共 2885 字,大约阅读时间需要 9 分钟。

整理一下级联更新和删除 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
,如需转载请自行联系原作者
你可能感兴趣的文章
js基础笔记1
查看>>
阿里 Dubbo架构设计攻略
查看>>
酒店入住管理系统
查看>>
杂谈: 手游小cp的未来在哪里?
查看>>
wordpress路由浅析
查看>>
运维自动化之ansible playbook安装lnmp环境
查看>>
我的友情链接
查看>>
python多线程之事件触发(线程间通信)
查看>>
linux下IPTABLES配置详解
查看>>
Ubuntu 更新软件源source.list
查看>>
我的友情链接
查看>>
SQL 中的JOIN两表或者多表连接问题
查看>>
Loadrunner11监控centos6X,速成!!
查看>>
我的友情链接
查看>>
全局程序集缓存GAC
查看>>
Silverlight 3 系列(四)数据绑定 Data Binding
查看>>
我的友情链接
查看>>
OC内存管理相关整理
查看>>
Unix整理笔记——高级工具——里程碑M9
查看>>
Elasticsearch入门
查看>>