创建了存储过程,并在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
应该这个不会错吧?!
谢谢!!!

解决方案 »

  1.   

    昏,现在所有的存储过程都能写入企业管理器了,语法上已经没有错误了,但是插入和更新在执行的时候有严重的错误。像数据库里面添加的数据和被修改的数据只能保存1个字符,天啊,这是怎么回事???原本有的数据和添加的数据就像被刀砍了一样,只有第一个字符,日哦!!!
    相关存储过程如下:
    插入的存储过程
    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
    请大家帮忙解决!!!谢谢!!!!
      

  2.   

    你所有的Char都没设置长度啊……I服了U
      

  3.   

    ???什么长度啊,别看开始的那个,17:23发的那个是能正确输入企业管理器的,都加了长度啦
    @Project as char(20)等,插入和更新都有长度,和我数据库中表里面的字段长度是一致的啊。
    HELPHELPHELPHELPHELPHELPHELPHELPHELPHELP
      

  4.   

    CREATE PROCEDURE lid401updata
    @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不会有错的
      

  5.   

    这里看看
    http://blog.csdn.net/leisang/archive/2004/09/27/118667.aspx