开发者社区> 吞吞吐吐的> 正文

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

简介:
+关注继续查看

整理一下级联更新和删除 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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Mybatis调用Mysql存储过程
在我的后台系统中,今天需要使用到存储过程。存储过程还真没写过,今天就写了个存储过程。使用在后台中。 其实这个接口功能  是涉及几张表的修改,删除,新增的。就写个一个存储过程。 存储过程: 1 CREATE PROCEDURE `sp_combine_admin_group`(IN `g...
801 0
SQL Server 2000删除表中的重复记录
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/3551849  在SQL Server中除了对拥有十几条记录的表进行人工删除外,实现删除重复记录一般都是写一段代码,用游标的方法一行一行检查,删除重复的记录。
668 0
Spring调用存储过程
public Boolean bindCard(final BindCardProfile bindCardProfile) throws DataAccessException { if (bindCardProfile == null) { return false; } String dbRetu
1167 0
mybatis调用视图和存储过程
    现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发。MyBatis支持普通sql的查询、视图的查询、存储过程调用,是一种非常优秀的持久层框架。它可利用简单的XML或注解用语配置和原始映射,将接口和java中的POJO映射成数据库中的纪录。
1176 0
SQL Server中收缩、清空和删除数据库文件及日志文件
一、简单方法 –SQL Server收缩方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。
4663 0
C/C++封装库ocicpplib调用Oracle存储过程的方法
工作这么多年,一直使用Mysql, Oracle数据库没有接触过, 这次要使用C/C++语言来调用Oracle的存储过程, 懒得自己去看OCI的API了, 直接上网找别人封装的库, 最后发现了这个ocicpplib, 下载了看了一下, 还不错, 使用起来比较简单。
1135 0
SQLSERVER存储过程语法详解
SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ]   [ WITH     { RECOMPILE | ENCRY
1513 0
4852
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载