存储过程。。

1.事务
ACID 特性
A:原子性
C:一致性
I:隔离性
D:持久性
2.存储过程
自定义的存储过程以USp_
极其类似与C#中的方法
1.没有参数没有返回值的存储过程
create  proc usp_HelloWorld1
as
begin
print 'Hello world!'
end
exec usp_HelloWorld1
2.带参数的存储过程
创建一个存储过程完成计算两个数的和
create proc usp_AddTwo
@number1 int,
@number2 int
as
begin
print @number1+@number2
end
--declare @a int=20
--declare @b int=40
--exec usp_AddTwo @a, @b
exec usp_AddTwo 20, 40
3.存储过程的参数问题
alter proc usp_AddTwo
@number1 int=200,
@number2 int=1000
as
begin
print @number1+@number2
end
exec usp_AddTwo 20,40
exec usp_AddTwo
---------------------------------------

alter proc usp_AddTwo
@number1 int,
@number2 int=1000
as
begin
print @number1+@number2
end
exec usp_AddTwo 30,90
exec usp_AddTwo 403
------------------------------------
alter proc usp_AddTwo
@number1 int=200,
@number2 int
as
begin
print @number1+@number2
end
exec usp_AddTwo 27,477
显性赋值
exec usp_AddTwo  @number2=29
创建一个存储过程完成计算两个数的和
并返回两个数的和
存储过程返回值,可以使用"output参数"!
alter proc usp_AddTwo
@number1 int=200,
@number2 int=1000
@sumTwo int output   
as
begin
set @sumTwo=@number1+@number2
end
--------------------------------------
declare @var int
exec usp_AddTwo @number2=500,
@number1=300.@sumTwo=@var output
print @var
---存储过程的output参数是要得到返回值的,这里需要传进去一个同类型的变量
来接收返回值的。
---------为什么要用存储过程?
(执行快。可以进行代码复用)
例题
use school
select * from Score
1.把60 分的都减去十分
update Score set english =english-10 where english between 60 and 70
  第一步;计算总人数
第二步;计算英语不及格的人数


create proc usp_PromteGrade
@ passline int
as
begin
计算总人数
计 算英语成绩
end
exec usp_PromteGrade    40

 

在ADO 中使用存储过程

use UserDB1
select * from T_Users
create  proc usp_Login
@uname varchar(50),
@password varchar(50)
@result bit output---这个布尔类型的参数,是用来返回值的,
来设置存储用户登录是否成功。1---true ,0---false
as
begin

declare @count int
set  count(select count(*) from T_Users
--where FUserName
=@uname and
---Fpassword=@password)
if
@count>0
begin
set @result=1
end
else
begin
set @result=0
end
 end
declare  @r  bit
exec usp_Login 'admin','111',@result=@r output
print @r
vs 里
添加一个空WEB 应用程序
添加网页(web窗体)
用户名
密码
 string username=txtUserName.text.Trim();
 string psaaword=txtPassWord.text.Trim();
使用ADO连接数据库
connection ---SqlConnection
连接字符串
Command--SqlCommand
SqlParameter
SqlDataReader

string  constr=" Data Source="
------string UserConstr=ConfigurationManager.ConnectionString["UserDB1conStr"].ConectionString;
using(SqlConnection conn=new SqlConnectin(connstr))
{
conn.Open()
using(SqlCommand cmd=conn.CreateCommand())
{
---string sql="insert into T_User(FuserName,Fpaasword)" values('王菲','555')
----cmd.CommandText=sql;
---int r=cmd.ExecuteNonQuery();
string sp_name='use_Login'
cmd.CommandText=sp_name;
SqlParameter prm1=new SqlParameeter("@uname",username)
SqlParameter prm2=new SqlParameeter("@password",password)
SqlParameter prm3=new SqlParameeter("@result",System.Data.SqlDbType.Bit)
cmd.Parameters.Add(prm1)
cmd.Parameters.Add(prm2)
cmd.Parameters.Add(prm3)
prm3.Direction=parameter.Direction.Output;
///int r=cmd.ExrcutaNonQuery()
如果执行的是insert delete update
ExecuteNonQuery()返回值为1,其他返回为0
bool b=Convert.ToBolean(prm3.Value)
if(b)
{
lable2.text="登录成功"
}
else
{
lable2.text="登录失败"
}

}
}
创建一个向特定表中插入记录的存储过程
select * from T_Users
create proc usp_T_Users_Insert
@username nvarchar(20),
@password  varchar(50),
@email varchar(50)
as
begin
insert into T_Users values(@username,@password,@email)
end
exec usp_T_Users_Insert  '哈哈','comeon','gogogo@126.com'

 

重写登录验证存储过程
create  proc usp_chkLogin
@username varchar(50),
@pwd varchar(50)
as
begin
select count(*) from T_Users where
Fusername=@username and
Fpassword=@pwd
end
exec  usp_chkLogin 'yqq','123'

VS 里面

 


object obj=cmd.ExecuteScalar()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值