create proc InsertRoom
@Rid varchar,
@Rfloor int,
@Rprepri float,
@Rphone varchar,
@Rin int,
@Rtype char
as
select Rid from rinfo where Rid=@Rid
if(@@rowcount=0)
begin---插入信息
insert into rinfo( Rid,Rfloor,Rprepri,Rphone,Rin,Rtype )values(@Rid,@Rfloor,@Rprepri,@Rphone,@Rin,@Rtype)
end
SqlCommand cmd = new SqlCommand("exec InsertRoom @Rid="+textBox1.Text+",@Rfloor='"+textBox2.Text+"',@Rprepri='"+textBox3.Text+"',@Rphone='"+textBox4.Text+"',@Rin=0,@Rtype='"+comboBox1.Text+"'",con);
SqlDataReader dr = cmd.ExecuteReader();
......比如插入的Rid是A201,那么只插入了一个A,另外,'"+textBox2.Text+"'和"+textBox2.Text+"的表示方法有什么区别?
create table rinfo(Rid varchar(10),Rfloor int,Rprepri float,Rphone varchar(20),Rin int,Rtype char(5))
go
create proc InsertRoom
@Rid varchar(10),
@Rfloor int,
@Rprepri float,
@Rphone varchar(20),
@Rin int,
@Rtype char(5)
as
--select Rid from rinfo where Rid=@Rid --这句没作用
if(@@rowcount=0)
begin---插入信息
insert into rinfo( Rid,Rfloor,Rprepri,Rphone,Rin,Rtype )values(@Rid,@Rfloor,@Rprepri,@Rphone,@Rin,@Rtype)
end
go
exec InsertRoom 'ABCEE',25,10.25,'kjsaew',487,'abced'
select * from rinfo
go
drop table rinfo
drop procedure InsertRoom
/*
Rid Rfloor Rprepri Rphone Rin Rtype
---------- ----------- ---------------------- -------------------- ----------- -----
ABCEE 25 10.25 kjsaew 487 abced(1 行受影响)*/'"+textBox2.Text+"'和"+textBox2.Text+" 的区别在:
如果插入的值是字符串类型的话,那一定要用前者,表示单引号中的内容是个字串(否则就会被认为是对象名)
数值型的内容,用后者.
@Rid='abcd' 这个abcd是字符串
@Rid=abcd 这个abcd是个对象名.
create table rinfo(Rid varchar(10),Rfloor int,Rprepri float,Rphone varchar(20),Rin int,Rtype char(5))
go
create proc InsertRoom
@Rid varchar(10),
@Rfloor int,
@Rprepri float,
@Rphone varchar(20),
@Rin int,
@Rtype char(5)
as
--select Rid from rinfo where Rid=@Rid --这句没作用
if not exists(select 1 from rinfo where Rid=@Rid)
begin---插入信息
insert into rinfo( Rid,Rfloor,Rprepri,Rphone,Rin,Rtype )values(@Rid,@Rfloor,@Rprepri,@Rphone,@Rin,@Rtype)
end
go
exec InsertRoom 'ABCEE',25,10.25,'kjsaew',487,'abced'
select * from rinfo
go
drop table rinfo
drop procedure InsertRoom
/*
Rid Rfloor Rprepri Rphone Rin Rtype
---------- ----------- ---------------------- -------------------- ----------- -----
ABCEE 25 10.25 kjsaew 487 abced(1 行受影响)*/否则过程会返回多个记录集.