CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

这个存储过程怎么写?

楼主sql2000(sql)2003-12-01 11:45:14 在 .NET技术 / ASP.NET 提问

我想实现在以下的功能,不知道存储过程怎么建立。  
   
  表,user_data   ,   按时间字段   update_last     desc   索引   100   条记录,需要取得记录集用于显示。并更新这些记录的   update_last   字段的值为   now()   。  
  最好能用一个存储过程实现  
   
  另外,不知道怎么用   asp.net   调用存储过程。请给详细代码呀。 问题点数:0、回复次数:15Top

1 楼ponycsdn(驰骏)回复于 2003-12-01 11:59:55 得分 0

// 打开一篇新文章供部门用户使用  
  // CREATE   PROCEDURE   Article_OneArticle_Open   @ArticleID   int     AS  
  // SELECT  
  //                                           Title,Content,EditionID,DepartmentID,Author,DatePub  
  // FROM  
  // Article_Publish  
  // WHERE  
  // ArticleID   =   @ArticleID  
  // GO  
  public   SqlDataReader   OpenOneArticle(int   articleID)  
  {  
  SqlCommand   sqlCmdOpenOneArticle   =   new   SqlCommand("Article_OneArticle_Open",DataBaseConnection);  
  sqlCmdOpenOneArticle.CommandType   =   CommandType.StoredProcedure;  
   
  sqlCmdOpenOneArticle.Parameters.Add(new   SqlParameter("@ArticleID",SqlDbType.Int,4));  
  sqlCmdOpenOneArticle.Parameters["@ArticleID"].Value   =   articleID;  
   
  if   (DataBaseConnection.State   !=   ConnectionState.Open)  
  {  
  DataBaseConnection.Open();  
  }  
   
  SqlDataReader   sqlDROpenOneArticle   =   sqlCmdOpenOneArticle.ExecuteReader(CommandBehavior.CloseConnection);  
  return   sqlDROpenOneArticle;  
  }Top

2 楼ponycsdn(驰骏)回复于 2003-12-01 12:01:41 得分 0

select   top   100  
  order   by     kkkk   DESC  
  update  
  Top

3 楼sql2000(sql)回复于 2003-12-01 12:03:44 得分 0

老大,看你们的帖子,头晕,来点解决问题的东东啊。俺对   存储过程只知道一点点点....Top

4 楼ponycsdn(驰骏)回复于 2003-12-01 12:08:05 得分 0

存储过程可以理解成带变量的sql语句。要是闲麻烦在视图中先定义然后把代码考出来。  
   
  最上面的是一个很简单的存储过程,还有一个方法其中调用了存储过程。Top

5 楼ponycsdn(驰骏)回复于 2003-12-01 12:09:33 得分 0

当然存储过程的这个理解并不是完善的,可以先这么认为然后在拓展。Top

6 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-01 12:21:59 得分 0

create   PROCEDURE   test  
  declare   @sql   varchar(8000)  
  BEGIN   TRANSACTION  
  --创建自增ID列  
  exec('alter   table   user_data   add   tempid   int   IDENTITY(1,1)')  
  if   @@error   <>   0   goto   err  
                    更新  
  set   @sql='update   user_data   set   update_last='''+cast(   getdate()   as   varchar   )+'''   where   tempid<=100'  
  exec(@sql)  
  if   @@error   <>   0   goto   err  
  --删除自增ID列  
  exec('alter   table   user_data   drop   column   tempid   ')  
  if   @@error   <>   0   goto   err  
  commit   tran  
  return  
  err:  
        rollback   tran  
        return  
  go  
   
   
   
  SqlCommand   cmd=new   SqlCommand();  
  cmd.CommandType=CommandType.StoredProcedure;  
  cmd.CommandText="test";  
  ......Top

7 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-01 12:23:00 得分 0

自己改改吧,到数据库论坛上问问Top

8 楼jordano7832(康师傅)回复于 2003-12-01 12:34:41 得分 0

楼上那个就行Top

9 楼sql2000(sql)回复于 2003-12-01 22:27:20 得分 0

to     xiandaliu(仙达流,菜鸟先飞)    
  按你的来着,但是...  
  提示有错呀,不知道是怎么回事,  
   
  未找到类型“SqlCommand”的公共成员“ExecuteQuery”。    
   
  对怎么调用也不清楚,这样的,有没错?  
   
  Dim   objRead   As   SqlDataReader  
   
                  Dim   myConnection   As   New   SqlConnection  
                  myConnection.ConnectionString   =   Application("strDSN")  
                  myConnection.Open()  
   
                  Dim   cmd   =   New   SqlCommand("update_last",   myConnection)  
                  cmd.CommandType   =   CommandType.StoredProcedure  
                  cmd.ExecuteQuery()Top

10 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-02 10:07:39 得分 0

cmd.CommandText="proname"  
  cmd.ExecuteNonQuery()  
   
  我写的存储过程可能会有错误,你最好到数据库版再问问。  
  Top

11 楼ponycsdn(驰骏)回复于 2003-12-02 10:40:34 得分 0

你的调用有错,你看看我上面的例子有参数的调用,不然就看看快速入门,用例子的。Top

12 楼lemong(風之影)回复于 2003-12-02 11:11:00 得分 0

ExecuteNonQuery    
  受   .NET   Framework   精简版的支持。  
    对连接执行   Transact-SQL   语句并返回受影响的行数。    
  ExecuteReader    
  受   .NET   Framework   精简版的支持。  
    已重载。将   CommandText   发送到   Connection   并生成一个   SqlDataReader。    
  ExecuteScalar    
  受   .NET   Framework   精简版的支持。  
    执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。    
   
   
  -----------------------  
  这是sqlcommand类的几个常用方法  
  cmd.ExecuteQuery()这样的用法不对  
  Top

13 楼lemong(風之影)回复于 2003-12-02 11:15:03 得分 0

此示例调用   SqlCommand   的   ExecuteNonQuery   方法以运行不返回任何数据的存储过程。相同的概念适用于其他   .NET   Framework   数据提供程序。  
   
  示例  
  Dim   backUpDB   As   SqlClient.SqlCommand  
  backUpDB   =   New   SqlClient.SqlCommand  
  backUpDB.CommandType   =   CommandType.StoredProcedure  
  backUpDB.CommandText   =   "BackUpDBSproc"  
  backUpDB.Connection   =   SqlConnection1  
   
  SqlConnection1.Open()  
  backUpDB.ExecuteNonQuery()  
  SqlConnection1.Close()  
  编译代码  
  本示例需要:    
   
  对   System   和   System.Data   命名空间的引用。    
  名为   SqlConnection1   的数据连接。    
  SqlConnection1   连接到的数据源中名为   BackUpDBSproc   的存储过程(或者在代码中用有效的存储过程名替代该名称)。    
  Top

14 楼lemong(風之影)回复于 2003-12-02 11:15:59 得分 0

此示例将存储过程分配给   SqlCommand   对象,执行它,并且将其数据返回到   SqlDataReader。相同的概念适用于其他   .NET   Framework   数据提供程序。  
   
  示例  
  Dim   CustOrderHist   As   SqlClient.SqlCommand  
  CustOrderHist   =   New   SqlClient.SqlCommand()  
  CustOrderHist.CommandType   =   CommandType.StoredProcedure  
  CustOrderHist.CommandText   =   "CustOrderHist"  
  CustOrderHist.Connection   =   SqlConnection1  
   
  Dim   sparam   As   SqlClient.SqlParameter  
  sparam   =   New   SqlClient.SqlParameter()  
  sparam.ParameterName   =   "@CustomerID"  
  sparam.SqlDbType   =   SqlDbType.NChar  
  CustOrderHist.Parameters.Add(sparam)  
   
  Dim   Reader   As   SqlClient.SqlDataReader  
  CustOrderHist.Parameters("@CustomerID").Value   =   "ALFKI"  
  SqlConnection1.Open()  
  Reader   =   CustOrderHist.ExecuteReader()  
  '   Insert   code   to   read   through   the   datareader.  
  SqlConnection1.Close()  
  编译代码  
  本示例需要:    
   
  对   System   和   System.Data   命名空间的引用。    
  名为   SqlConnection1   的数据连接。    
  SqlConnection1   连接到的数据源中名为   CustOrderHist   的存储过程。    
  该存储过程必须采用类型   Nchar   的名为   @CustomerID   的参数。    
  Top

15 楼sql2000(sql)回复于 2003-12-02 14:25:22 得分 0

晚上回家试度,现在头晕,谢谢楼上。明天把分加给你,不知道能不能把你加到小红星。Top

相关问题

  • 这个存储过程怎么写?
  • 这个存储过程怎么写?
  • 这个存储过程怎么写?(SQLSERVER7)
  • 这个存储过程怎么写!
  • 这个存储过程怎么写?
  • 这个存储过程该怎么写?
  • 这个存储过程怎么写。
  • 这个存储过程怎么写?
  • 怎么写这个存储过程?
  • 这个存储过程怎么写?

关键词

  • .net framework
  • 存储过程
  • 数据
  • 代码
  • 连接
  • sqlcmdopenonearticle
  • 示例
  • custorderhist
  • sqlconnection1
  • 调用

得分解答快速导航

  • 帖主:sql2000

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo