创建了存储过程,并在salDataAdapter的数据适配器中使用"现有的存储过程",分别为选择,插入和更新选择我自己写的存储过程,程序中已经能够正常通过"选择"存储过程在FORM的LOAD事件中正确装载数据,但是不知道怎么正确调用"更新"存储过程,通过this.sqlDataAdapter1.Update(dataset)总是没有用,查看windows自动生成的代码发现已经为sqlDataAdapter1.Update把CommandType设置为system.Data.CommandType.StoredProcedure,相关的Parameters也Add了,请问如何才能正确的应用它?
下面附上存储过程:
CREATE PROCEDURE UpdateBug
(
@Bug# as int,
@Porject as char,
@Type as char,
@AffectsVersion as char,
@FixVersion as char,
@UseLanguage as char,
@State as char,
@Priority as char,
@Assignee as char,
@Reporter as char,
@Platform as char,
@OS as char,
@KeyWords as char,
@Description as ntext,
@ChangeHistory as ntext,
@ArrivalDate as datetime,
@LastModified as datetime,
@FixedDate as datetime
)
AS
UPDATE BugMan
SET
BugMan.Porject=@Porject ,
BugMan.Type=@Type ,
BugMan.AffectsVersion=@AffectsVersion ,
BugMan.FixVersion=@FixVersion ,
BugMan.UseLanguage=@UseLanguage ,
BugMan.State=@State ,
BugMan.Priority=@Priority ,
BugMan.Assignee=@Assignee ,
BugMan.Reporter=@Reporter ,
BugMan.Platform=@Platform ,
BugMan.OS=@OS ,
BugMan.KeyWords=@KeyWords ,
BugMan.Description=@Description ,
BugMan.ChangeHistory=@ChangeHistory ,
BugMan.ArrivalDate=@ArrivalDate ,
BugMan.LastModified=@LastModified ,
BugMan.FixedDate=@FixedDate
WHERE
Bug#=@Bug#
RETURN
GO
应该这个不会错吧?!
谢谢!!!
下面附上存储过程:
CREATE PROCEDURE UpdateBug
(
@Bug# as int,
@Porject as char,
@Type as char,
@AffectsVersion as char,
@FixVersion as char,
@UseLanguage as char,
@State as char,
@Priority as char,
@Assignee as char,
@Reporter as char,
@Platform as char,
@OS as char,
@KeyWords as char,
@Description as ntext,
@ChangeHistory as ntext,
@ArrivalDate as datetime,
@LastModified as datetime,
@FixedDate as datetime
)
AS
UPDATE BugMan
SET
BugMan.Porject=@Porject ,
BugMan.Type=@Type ,
BugMan.AffectsVersion=@AffectsVersion ,
BugMan.FixVersion=@FixVersion ,
BugMan.UseLanguage=@UseLanguage ,
BugMan.State=@State ,
BugMan.Priority=@Priority ,
BugMan.Assignee=@Assignee ,
BugMan.Reporter=@Reporter ,
BugMan.Platform=@Platform ,
BugMan.OS=@OS ,
BugMan.KeyWords=@KeyWords ,
BugMan.Description=@Description ,
BugMan.ChangeHistory=@ChangeHistory ,
BugMan.ArrivalDate=@ArrivalDate ,
BugMan.LastModified=@LastModified ,
BugMan.FixedDate=@FixedDate
WHERE
Bug#=@Bug#
RETURN
GO
应该这个不会错吧?!
谢谢!!!
相关存储过程如下:
插入的存储过程
CREATE PROCEDURE InsertNewBug
(
@Bug# int,
@Porject char(40),
@Type char(30),
...
@ArrivalDate datetime,
@LastModified datetime,
@Description ntext
)
AS
INSERT INTO BugMan
(
Bug#,
Porject,
...
Description
)
VALUES
(@Bug#,
@Porject,
...
@LastModified,
@Description
)
RETURN
GO
更新的存储过程
CREATE PROCEDURE UpdateBug@Bug# as int,
@Project as char(20), --给char指定长度
...
@Description ntext,
@ArrivalDate datetime,
@FixedDate datetimeAS
UPDATE BugMan
SET
BugMan.Porject = @Project ,
BugMan.Type=@Type ,
...
BugMan.FixedDate=@FixedDate
WHERE
Bug#=@Bug#
RETURN
GO
请大家帮忙解决!!!谢谢!!!!
@Project as char(20)等,插入和更新都有长度,和我数据库中表里面的字段长度是一致的啊。
HELPHELPHELPHELPHELPHELPHELPHELPHELPHELP
@ID varchar(50),
@RFBH varchar(50),
@jcbh varchar(50),
@myDATE varchar(50),
@FJBH varchar(50),
@PJBH varchar(50),
@ZDLR varchar(50),
@ZDDATE varchar(50),
@RFDS varchar(50)
AS
update FH_RFJL
set
RFBH=@RFBH,
jcbh=@jcbh,
myDATE=@myDATE,
FJBH=@FJBH,
PJBH=@PJBH,
ZDLR=@ZDLR,
ZDDATE=@ZDDATE,
RFDS=@RFDS
where id=@id
GO
你的都不设长度的?字符全部设为varchar不会有错的
http://blog.csdn.net/leisang/archive/2004/09/27/118667.aspx