当前位置:首页
开发技术指南» 文章正文
    引言:

 ·指针问题,谁能给点解释    »显示摘要«
    摘要: #include "stdafx.h" #include <iostream.h> void main( int argc, char **argv ) { void strcopy(char *,char*); char a[]="hello,world!"; char b[20]; strcopy(b,a); cout<<......
    摘要: codeplus 代码生成器 v2.0 beta 1 自2005-8-24日推出,到今日恰有半月之久了。在这短短的15天时间里,codeplus倍受朋友们关注和支持,经粗略统计,累计下载量已经超过1万人次。看到codeplus正逐渐为更多的程序员朋友带来帮助,成为程序员朋友们每日编程的常备助手时,我内心非常激动和欣慰。 期间,codeplus在cnblogs网友zitiger、cure,......


我在代码里面怎么每次获取由存储过程output参数返回来的值都是空的郁闷

我的数据库用的是SQL,我写了个存储过程,每当新增一条记录时,都用OUTPUT参数返回这条记录的主键,主键是自增的。但在页面代码中调用这个存储过程的时候,返回来的结果总是为空,郁闷!

NO.1   作者: working1997

1、表结构  
   
  CREATE   TABLE   [dbo].[Account_Role]   (  
  [RoleId]   [int]   IDENTITY   (1,   1)   NOT   NULL   ,  
  [CategoryID]   [int]   NOT   NULL   ,  
  [RoleName]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL   ,  
  [Description]   [varchar]   (50)   COLLATE   Chinese_PRC_CI_AS   NULL    
  )   ON   [PRIMARY]  
  GO  
   
  ALTER   TABLE   [dbo].[Account_Role]   WITH   NOCHECK   ADD    
  CONSTRAINT   [PK_Account_Role]   PRIMARY   KEY     CLUSTERED    
  (  
  [RoleId]  
  )     ON   [PRIMARY]    
  GO  
   
   
  2、存储过程  
   
  CREATE   PROCEDURE   sp_AccountRole_Create  
   
  @CategoryID   int,  
  @RoleName   nvarchar(10),  
  @Description   nvarchar(50),  
  @RoleID   int   output  
  AS          
   
  DECLARE   @Count   int         --   查找是否有相同名称的记录          
   
  SELECT   @Count   =   Count(RoleID)   FROM   Account_Role   WHERE                  
  RoleName   =   @RoleName          
               
  INSERT   INTO   Account_Role(CategoryID,   RoleName,   Description)   valueS  
                  (@CategoryID,   @RoleName,   @Description)                  
   
  SET   @RoleID   =   @@IDENTITY                
  RETURN   0  
   
   
  GO  
   
   
  3、执行的代码  
   
  Dim   param()   As   OleDbParameter   =   {New   OleDbParameter("@CategoryID",   OleDbType.Integer,   1),   _  
                                                                                            New   OleDbParameter("@RoleName",   OleDbType.VarChar,   50),   _  
                                                                                            New   OleDbParameter("@Description",   OleDbType.VarChar,   50),   _  
                                                                                            New   OleDbParameter("@RoleID",   OleDbType.Integer,   10)   _  
                                                                                          }  
   
                          param(0).Value   =   "1"  
                          param(1).Value   =   "2"  
                          param(2).Value   =   "sss"  
                          param(3).Direction   =   ParameterDirection.Output  
   
                          Dim   ds   As   DataSet  
                          ds   =   _cus.cusProcData("sp_AccountRole_Create",   param,   "sp_AccountRole_Create")  
                          Dim   s   As   String  
                          s   =   CStr(param(3).Value)         在这里,s就是你要返回的output的值  
   
   
 


 ·怎样操作数据库    »显示摘要«
    摘要: 我是vc++初学者,以前会在vc++中通过向导建立与数据库的连接,然后用m_pset操作数据库。 现在我已有一个与数据库没有关系的单文档应用程序,我想在里面添加对数据库的操作,请问该怎么做?要用到哪些类,怎么使用? ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE