存储过程 – ASP Classic – Recordset对象与命令对象
发布时间:2020-12-16 09:58:33 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP Classic和SQL Server 2000来创建动态网站. 我对何时使用记录集对象以及何时在查询数据库时使用命令对象感到困惑. 有人告诉我,如果存储过程将从SELCT语句返回记录,那么我应该使用记录集,但是如果我更新或插入,那么我应该使用命令对象并将所有数
我正在使用ASP Classic和SQL Server 2000来创建动态网站.
我对何时使用记录集对象以及何时在查询数据库时使用命令对象感到困惑. 有人告诉我,如果存储过程将从SELCT语句返回记录,那么我应该使用记录集,但是如果我更新或插入,那么我应该使用命令对象并将所有数据作为参数传递给存储过程. 使用记录集时,我经常传递任何所需的数据,如下所示: rs.Source = "spTest " & id 我总是验证我传递的数据,以确保它是我期待的并将其转换为正确的类型. 我被告知,上面的方法让我的代码对SQL注入攻击开放,我应该总是使用命令对象. 它是否正确? 谢谢 解决方法
恩,那就对了.
想象一下有人传递字符串:’0;从用户删除*;’ 您的查询将是: spTest 0; delete * from users; 如果你很幸运,你将没有用户表.就个人而言,我会一直使用命令对象来保持一致性.您可以从中获得所需的一切. 以下是如何使用命令对象执行此操作的快速示例: Dim oStoredProc : Set oStoredProc = Server.CreateObject("ADODB.Command") With oStoredProc .ActiveConnection = oDBConnection .CommandType = adCmdStoredProc .CommandText = "up_procname" .Parameters.Append(.CreateParameter("@Param1",ADODB.adInteger,ADODB.adParamInput,22,11)) .Parameters.Append(.CreateParameter("@Param2",ADODB.adParamOutput,12) Call .Execute() myVal = .Parameters("@Param2") End With Set oStoredProc = Nothing (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 使用JSON.Net序列化EF4.1实体
- vbscript – Classic ASP中的URL编码
- ASP.Net中上传文件的几种方法
- asp.net-mvc-3 – 使用Razor视图抛出有关DotNetOpenAuth.IE
- asp.net-mvc-3 – 在图表.net mvc3中设置间隔
- asp.net – 在.NET中发生部分回发时,用户控件中的Javascrip
- ASP.NET 清除模式窗口数据缓存的操作方式
- asp.net-mvc – 调用dropdownlist选择的值为@html.action路
- 如何在asp.net C#中的SQL Server中以YY格式获取年份#
- 使用asp.net连接到mySQL数据库
推荐文章
站长推荐
- asp.net-core – ASP .NET vNext MVC没有传递给下
- asp.net-mvc – 如何asp.net(mvc)服务器返回错误
- [ASP.NET MVC] 利用自定义的AuthenticationFilte
- asp.net MVC 3/4相当于一个response.filter
- asp.net-mvc – AngularJS无法在发布模式下工作(
- asp.net – __dopostback未定义在IE 11上Windows
- asp.net – 如何在Visual Studio 2008中安装(获取
- Asp查询整库,每表100条保存为csv格式
- asp.net-web-api – SimpleInjector RegisterWeb
- asp.net mvc 之旅 —— 第六站 ActionFilter的应
热点阅读