留言簿

我要留言
留言搜索

2006-04-08 11:41  xiaoxi

请教存储过程除了速度和安全性的好处外,还有什么好处?代码编写简单吗?
cmd=new SqlCommand("wqnews_GetPagedWQNews",conn);
				cmd.CommandType=CommandType.StoredProcedure;
				cmd.Parameters.Add("@pageindex",1);
				cmd.Parameters.Add("@pagesize",1);
				cmd.Parameters.Add("@docount",true);
===============
cmd=new SqlCommand("SELECT * from wqnews");
回复:存储过程的好处可以总结为以下几点:
  • 安全:防止SQL注入攻击以及设置独立执行权限;
  • 模块化:方便程序设计及维护;
  • 已编译,运行速度快;
  • 减少网络流量:一个需要数百行SQL 代码的操作可以通过一条执行过程代码的语句来执行,而不需要在网络中发送数百行代码
当然有优点也有缺点,存储过程的最大缺点是移植性差,不同的数据库间存储过程是无法移植的。谢谢!

2006-04-05 21:03  南文焕

您好,请教一个问题,下面这段语句执行到这pager.RecordCount = CInt(objCmd.ExecuteScalar())都没有问题,但是执行到objCmd.ExecuteReader()就出现 必须声明变量 '@classid'.想请教一下是怎么回事,谢谢.
在没有自定义参数的时候,这些语句也是没有问题.谢谢
Dim objCmd As SqlCommand
        Dim objDr As SqlDataReader
        Dim arParams(3) As SqlParameter

        arParams(0) = New SqlParameter("@pageindex", 1)
        arParams(1) = New SqlParameter("@pagesize", 1)
        arParams(2) = New SqlParameter("@docount", True)
        arParams(3) = New SqlParameter("@classid", strClassID)

        objCmd = objDb.CreateCmd("Stp_ShowArticlelistFront", arParams)
        pager.RecordCount = CInt(objCmd.ExecuteScalar())
        '重新绑定数据
        objCmd.Dispose()

        arParams(0) = New SqlParameter("@pageindex", pager.CurrentPageIndex)
        arParams(1) = New SqlParameter("@pagesize", pager.PageSize)
        arParams(2) = New SqlParameter("@docount", False)
        arParams(3) = New SqlParameter("@classid", strClassID)

        objCmd = objDb.CreateCmd("Stp_ShowArticlelistFront", arParams)
        objDr = objCmd.ExecuteReader()
        DataRecordList.DataSource = objDr
        DataRecordList.DataBind()
回复:错误出现在存储过程中,您的存储过程呢?

2006-04-05 08:26  Eric_Net

哈 第一次来 踩个脚印,没想到这里还可以提问题哈 
以后得常来看看
回复:欢迎常来转转:)

2006-04-03 09:26  武眉博<活靶子.Net>

我想你~~~
回复:晕,别让人家误会了:)最近一直加班加点在赶项目,五一也可能没法回去了,55~~~!

2006-03-31 11:55  xiaoxi

下载了事例项目“aspnetpagersamples”,在access目录下,你的事例都能用,我新建一个文件,依样画葫芦把你的代码抄过来都不能用。为什么呢,我好晕
我的是v2003。
分析器错误信息: 未能加载类型“Wuqi.Webdiyer.access.WebForm1”。

源错误: 


行 1:  <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Wuqi.Webdiyer.access.WebForm1" %>
行 2:  <%@Register TagPrefix="webdiyer" Namespace="Wuqi.Webdiyer" Assembly="AspNetPager"%>
行 3:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 

源文件: D:\wwwoor\aspnetpagersamples\access\WebForm1.aspx    行: 1 


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
回复:您的WebForm1.aspx后台代码文件的类名限定名是Wuqi.Webdiyer.access.WebForm1吗?你的虚拟目录设置正确吗?项目编译成功了吗?谢谢!

2006-03-28 14:23  Royman.Chen

是事件丢失了。 gridview同样能绑定。您的控件在2.0里面跑得很好。 谢谢您开发这样有用的冬冬~另外,有一个观点跟您首页述说的不一样,您提供的三种分页存储过程,我那公司的数据库测试了一下,结果发现80w条数据里面,恰恰是第三钟多重select的方法效率是最高的,应该是数据量越多,只要是按照主键sort,第三种的效率越高.特别要说的是第一种存储过程里面,有一个select*到table变量的,这句是在海量数据中严重打击效率的,呵呵,再一次感谢您的免费产品!呵呵
回复:谢谢,欢迎多提供建议和意见!

2006-03-28 14:22  呵呵 笨了

是事件丢失了。 gridview同样能绑定。您的控件在2.0里面跑得很好。 谢谢您开发这样有用的冬冬~另外,有一个观点跟您首页述说的不一样,您提供的三种分页存储过程,我那公司的数据库测试了一下,结果发现80w条数据里面,恰恰是第三钟多重select的方法效率是最高的,应该是数据量越多,只要是按照主键sort,第三种的效率越高.特别要说的是第一种存储过程里面,有一个select*到table变量的,这句是在海量数据中严重打击效率的,呵呵,再一次感谢您的免费产品!呵呵
回复:谢谢,欢迎多提供建议和意见!

2006-03-28 13:23  飞雪尔

4.33在firefox中,输入页面点击go会出错,估计是由于使用了document.all而不是标准的document.getElementById,希望出新版配合asp.net 2.0的话,要修正这个bug
回复:是的,谢谢您提醒,下一个版本中我会改进的!

2006-03-28 13:13  长头发MM

吴帅哥,能支持DotNet2.0不?如果能,在哪儿下载?
回复:您好,我还没有在vs2005和.net 2.0下测试过,最近一直在用vs2003做项目,忙得没时间做别的,不过据一些用过的朋友反映在2.0下没有太大问题,应该可以用,不过AspNetPager 4.x 及以前版本均没有考虑浏览器的兼容问题,所以在Firefox下会有一些问题,这些问题我会在下一个版本中解决。谢谢!

2006-03-27 14:18  Royman.Chen

我尝试在GridView里面用你的控件,绑定数据后只正常显示首页,分页点来点去都是首页的数据,请问吴大侠应该如何解决?是因为用了GridView跟默认DataGrid的区别嘛?期待您VS2005的的新一代产品!
回复:分页控件和您用来显示数据的控件没有任何关系,所以不是GridView或DataGrid的问题,不分页应该是您没有编写分页事件处理程序,或者分页处理程序中没有正确地获取当前页的数据,请对照示例检查您的代码。谢谢!
;