2 tong275056839 tong275056839 于 2016.02.16 13:50 提问

VS2010 C# 调用存储过程 2C

C#具体代码调用以下存储过程

USE [HWATT]
GO
/****** Object: StoredProcedure [dbo].[PRO_ADDCARD] Script Date: 02/16/2016 13:38:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[PRO_ADDCARD]
@iismanual smallint,
@ircdtime datetime,
@idevid bigint,
@iemployeecode varchar(16),
@iemployeename varchar(250),
@iimagedata image,
@ircdtype smallint,
@ifrom_check smallint,
@ifaceidno varchar(5),
@iadminid bigint,
@iimagestatus smallint,
@isnewrcd bigint output
AS
begin
/* Procedure Text */
declare @iemployeeid bigint
declare @iimgid bigint
declare @icount bigint
declare @idevclass smallint
declare @istrcardid varchar(50)
declare @isqltext varchar(5000)
declare @iopid bigint
set @idevclass = 0
set @isnewrcd = 0
set @ircdtype = 0

    set @iemployeeid = (SELECT MAX(EMPLOYEEID) FROM KQZ_EMPLOYEE where employeecode = @iemployeecode and brchid = (select max(brchid) from kqz_employee where employeecode = @iemployeecode AND BRCHID != -3))

    IF(@iemployeeid is null)
    BEGIN
       INSERT INTO kqz_employee(BrchID,BrchName,EmployeeCode,EmployeeName,gender,ModelNum,Privilege,DevTypeSTR,IsCheck,OnRule,OffRule,CanOvertime,HaveFesta,HavePwd) VALUES
          (1,'1',@iemployeecode,@iemployeename,2,0,0,'',1,0,0,1,1,0)
       set @iemployeeid = (select @@identity)
    END

    set @icount = (SELECT count(*) FROM KQZ_CARD T1 INNER JOIN KQZ_EMPLOYEE T2 ON T1.EMPLOYEEID = T2.EMPLOYEEID AND T2.EMPLOYEEID = @iemployeeid AND T2.EMPLOYEECODE = @iemployeecode AND CARDTIME = @ircdtime)
    if(@icount > 0)
    begin
      set @isnewrcd = -1
      return @isnewrcd
    end

    if (@iimagedata IS NOT NULL)
    BEGIN
      insert into kqz_Img (ImgPhoto) values (@iimagedata) 
      set @iimgid = (select @@identity)
    END
    ELSE
    BEGIN
        set @iimgid = 0
    END

    INSERT INTO kqz_Card(EmployeeID,CardTime,CardTypeID,DevID,DevClass,ImgID,ImgStatus,IsValidate,ModifyUser,ModifyType,FaceIDNo) values
      (@iemployeeid,@ircdtime,@ircdtype,@idevid,@ifrom_check,@iimgid,@iimagestatus,0,0,0,@ifaceidno)
    set @isnewrcd = (select @@identity)
    IF(@iismanual = 1)
    BEGIN
        set @istrcardid = cast(@isnewrcd as varchar(30))

        INSERT INTO KQZ_CARD_OP(OPTYPE,INSERTCONDITION,OPEMPLOYEE) VALUES(1,@istrcardid,@iadminid)
        set @iopid = (select @@identity)

        set @ISQLTEXT = N'
          INSERT INTO KQZ_CARD_OP_DETAILS(OPID,CARDID,EMPLOYEEID,CARDTIME,CARDTYPEID,DEVID,DEVCLASS,CVERIFY,IMGID,IMGSTATUS,ISVALIDATE,
                                      FACEIDNO,MODIFYUSER,MODIFYTYPE,MODIFYTIME)
          SELECT ' + cast(@iopid as varchar(30)) +',CARDID,EMPLOYEEID,CARDTIME,CARDTYPEID,DEVID,DEVCLASS,CVERIFY,IMGID,IMGSTATUS,ISVALIDATE,
                 FACEIDNO,MODIFYUSER,MODIFYTYPE,MODIFYTIME
          FROM  KQZ_CARD
          WHERE cardid = ' + cast(@istrcardid as varchar(30))
        exec (@ISQLTEXT)
    end

return @isnewrcd
end

5个回答

bdmh
bdmh   Ds   Rxr 2016.02.16 13:57

把你的存储过程写到数据库中,然后参考下面的方法调用
http://blog.sina.com.cn/s/blog_4c79302301000ac0.html

tong275056839
tong275056839   2016.02.16 14:52

图片说明就是出现这样的问题

YUELIANG412724
YUELIANG412724   2016.02.16 16:23

明显是你传入参数的没有匹配上,仔细检查一下

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.16 22:16
tong275056839
tong275056839   2016.02.17 15:20

@iimagedata image,这个类型传入数据要是空,或就是错的

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
C#开发之调用数据库存储过程
本例应用在WebService中,该WebService根据实际需要建立数据库连接,访问数据库,调用存储过程,得到结果。比如调用存储过程进行用户的验证登录。 存储过程详细见地址:http://blog.csdn.net/whuarui2010/article/details/7768061 WebService的Web方法如下: [WebMethod] public str
c#调用存储过程例子
c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子c#调用存储过程例子
mysql存储过程及c#调用标准版
private string shuju_lianjie(string name, string email, string password)        {            //////////////////////////////////////////////////////////////////////////////            ///获取用户名、邮件及设定密码,
EF和LINQ 调用存储过程
好久没有更新文章了,最近项目比较忙都没什么时间来分享最近的问题。 今天遇到一个超级傻逼的问题。C#中调用存储过程,自己code也10来年了,这应该是很简单的问题了。今天有2个新的api,一个只有1个参数, 一个有10多个参数,先前没有注意到对象类型, 以为是EF的DbContext,结果后来才发现是LINQ的DataContext对象。以前调用存储过程都是靠设计界面封装成方法。 现在designe
在VS2010中创建SQL SERVER系统存储过程
在VS2010中创建SQL SERVER系统存储过程 参照:http://www.cnblogs.com/webabcd/archive/2007/06/24/793941.html 一:准备工作: 1. 首先在某数据库(如DbTest)中创建一个表,如t1,SQL语句如下: CREATE TABLE t1(tid int primary key, tname nvarch
SqlCommand调用存储过程
转自:http://www.cnblogs.com/czh-liyu/archive/2007/12/25/1014817.html用一个命令对象调用存储过程,就是定义存储过程的名称,给过程的每个参数添加参数定义,然后用上一节中给出的方法执行命令。为了使本节的示例更有说服力,下面定义一组可以用于插入、更新和删除Northwind示例数据库中Region表的记录的存储过程,这个表尽管很小,但
C#调用存储过程示例
C#调用存储过程示例 C#存储过程 C#使用存储过程
C#调用存储过程简单完整例子
CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME=@Name SET  @Rowcount=@@ROWCOUNTENDGO----------------------------------------------------------------
VS2010-MFC通过ADO调用SQLServer存储过程
首先,贴出我失败的尝试吧,问题没有解决,希望日后有高手指点 简单的存储过程例子 USE [VIPDataTest_DB] GO /****** Object: StoredProcedure [dbo].[sp_1] Script Date: 04/29/2015 09:15:22 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER O
C#中调用存储过程
1、没有参数没有返回值   2、有参数没有返回值  3、有参数有返回值     下面就这几种情况分别举例:1、没有参数没有返回值,象这种情况最简单。   存储过程   USE Northwind    CREATE PROC novaluenoparameter  AS    SELECT * FROM products  GO   ///   /// c#代码 方