ASP中的SQL语句如何使用参数向数据库中写入数据?

作者&投稿:柴岭 (若有异议请与网页底部的电邮联系)
如何用ASP向SQL写入数据~

第一步:先在你有要加密字段的文件头部将md5 文件给包含进去。


第二步:将获取到的值进行加密
UserName=Request.Form("UserName")
Password=md5(Request.Form("Password"))

这里UserName是没有加密的。。Password则用MD5加了密。

第三步:通过SQL语句,将Password这个值写入数据库对应的值里面。就这么简单。

需要提醒的是,如果你的密码通过MD5加过密。。那么进行数据对比的时候,同样要把对比的内容也经过MD5加密。。否则因为两边内容不相同而无法进行比较。

例子:
Card_Number=Request.Form("Card_Number")
card_pass=Md5(Request.Form("card_pass"))
card_no=Request.Form("card_no")

Conn.execute("insert into [card
](card_Number,card_pass,card_no,Time) values('"&Card_Number&"','"&card_pass&"','"&card_no&"',# Now() #)")


不介意的话顺便借个地方打个小广告
===========================================
[诚意主机] 以客户为中心,全心打造客户最满意的虚拟主机。

为什么选择我们?
1.我们的虚拟主机均支持在线打包备份功能,7天自动数据备份。即使你文件被误删,也能找回7天内系统为你备份的文件。

2.我们的虚拟主机采用国内少有的子目录域名绑定功能,支持2个子目录的绑定,从此打破一个空间只能放一个网站的烦恼。

3.我们的虚拟主机支持目录权限关闭功能,即使你网站本身存在上传漏洞,只要通过我们为你提供的虚拟主机管理平台,自主关闭上传目录的执行权限,即使木马传到你网站,入侵者也因为木马没执行权限无法运行只好放弃对你网站的入侵。

4.为了让更多客户体验【诚意主机】的高速、稳定、安全所带来的快感,我们的空间均支持试用(需联系客服开通)

5.客服不定时在线为你解答建站碰到的技术问题。

如果你对我们的产品感兴趣或者想了解更多,请登陆以下地址:http://www.cyisp.cn 诚意主机在线客服真诚为你服务。

<%
dim conn,sql
set conn = server.createobject("adodb.connection")
conn.connectionstring="Provider = Microsoft.Jet.OLEDB.4.0;Data Source="&server.mapPath("db2.mdb")
conn.open
sql ="insert into liuyan(name,address,qq,content) values('"&xiaotang1&"','"&xiaotang2&"','"&xiaotang3&"','"&xiaotang4&"')"
conn.execute(sql) '这个方法用来执行sql语句
conn.close
set conn = nothing
%>

我理解你的需求,很可惜,ASP 不支持 @ 添加参数的方法。
不过,你可以使用 Recordset 对象的 AddNew 方法,能完美的满足你的需求。
不过你为什么不用 .net 平台呢?.net 还可以实现类型化的数据添加,更安全方便。
如果一定要用 asp,还可以参考一下微软的 DNA 架构一书(最好有自己的主机)。

说正题,针对你的 Insert(SQL)语句,以下是微软官方的 Recordset 对象的 AddNew 方法的示例代码:

AddNew 方法范例 (VBScript)

本范例使用 AddNew 方法来创建具有指定名称的新记录。

在 Active Server Page (ASP) 中使用下列范例。要查看此完整功能范例,C:\mssdk\samples\dataaccess\rds 处必须存在数据源 AdvWorks.mdb(与 SDK 一起安装)。这是 Microsoft Access 数据库文件。

使用 Find 定位文件 Adovbs.inc,并将其放到计划使用的目录中。请将下列代码剪切并粘贴到记事本或其他文本编辑器中,并将其另存为 AddNew.asp。可以在任何客户端浏览器中查看结果。

要执行本范例,请在 HTML 表中添加虚构的新记录。单击“Add New”。要删除不需要的记录,请参阅 Delete 方法范例。

<%@Language = VBScript %>
<!-- #Include file="ADOVBS.INC" -->
<HTML>
<HEAD>
<TITLE>ADO Open Method</TITLE>
<STYLE>
<!--
TH {
background-color: #008080;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: xx-small;
color: white;
}
TD {
text-align: center;
background-color: #f7efde;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: xx-small;
}
-->
</STYLE>
</HEAD>
<BODY>
<FONT FACE="MS SANS SERIF" SIZE=2>
<Center><H3>ADO AddNew Method</H3>
<!-- ADO Connection Object used to create recordset-->
<%
src = "C:\mssdk\samples\dataaccess\rds\advworks.mdb"
sConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & src
'Create and Open Connection Object
Set OBJdbConn = Server.CreateObject("ADODB.Connection")
OBJdbConn.Open sConnStr
'Create and Open Recordset Object
Set RsCustomerList = Server.CreateObject("ADODB.Recordset")
RsCustomerList.ActiveConnection = OBJdbConn
RsCustomerList.CursorType = adOpenKeyset
RsCustomerList.LockType = adLockOptimistic
RsCustomerList.Source = "Customers"
RsCustomerList.Open
%>
<!—
If this is first time page is open, Form collection will be empty when data is entered.
run AddNew method
-->
<% If Not IsEmpty(Request.Form) Then
If Not Request.Form("CompanyName") = "" Then
RsCustomerList.AddNew
RsCustomerList("CompanyName") = Request.Form("CompanyName")
RsCustomerList("ContactLastName") = Request.Form("LastName")
RsCustomerList("ContactFirstName") = Request.Form("FirstName")
RsCustomerList("PhoneNumber") = Request.Form("PhoneNumber")
RsCustomerList("City") = Request.Form("City")
RsCustomerList("StateOrProvince") = Request.Form("State")
RsCustomerList.Update
RsCustomerList.MoveFirst
End If
End If
%>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<!-- BEGIN column header row for Customer Table-->

<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>Phone Number</TD>
<TD>City</TD>
<TD>State/Province</TD>
</TR>
<!--Display ADO Data from Customer Table
one row on each pass through recordset-->
<% Do While Not RsCustomerList.EOF %>
<TR>
<TD> <%= RSCustomerList("CompanyName")%> </TD>
<TD> <%= RScustomerList("ContactLastName") & ", " %>
<%= RScustomerList("ContactFirstName") %> </TD>
<TD> <%= RScustomerList("PhoneNumber")%> </TD>
<TD> <%= RScustomerList("City")%> </TD>
<TD> <%= RScustomerList("StateOrProvince")%> </TD>
</TR>
<!-- Next Row = Record Loop and add to row html table-->
<%
RScustomerList.MoveNext
Loop
%>
</TABLE>
<HR>
<!-- Form to enter new record posts variables back to this page -->
<Form Method=Post Action="AddNew.asp" Name=Form>
<TABLE>
<TR>
<TD>Company Name:</TD>
<TD><Input Type="Text" Size="50" Name="CompanyName" Value = ""></TD>
<TR>
<TD>Contact First Name:</TD>
<TD><Input Type="Text" Size="50" Name="FirstName" Value = ""></TD>
<TR>
<TD>Contact Last Name:</TD>
<TD><Input Type="Text" Size="50" Name="LastName" Value = ""></TD>
<TR>
<TD>Contact Phone:</TD>
<TD><Input Type="Text" Size="50" Name="PhoneNumber" Value = ""></TD>
<TR>
<TD>City:</TD>
<TD><Input Type="Text" Size="50" Name="City" Value = ""></TD>
<TR>
<TD>State / Province:</TD>
<TD><Input Type="Text" Size="5" Name="State" Value = ""></TD>
<TR>
<TD><Input Type="Submit" Value="Add New">
<Input Type="Reset" Value="Reset Form">
</TABLE>
</Form>
<%'Show location of data source
Response.Write(OBJdbConn)
%>
<Script Language = "VBScript">
Sub Form_OnSubmit
MsgBox "Sending New Record to Server",,"ADO-ASP _Example"
End Sub
</Script>
</BODY>
</HTML>

存储过程能实现你的要求。
不过最简单的如 :
Author =replace(trim(request("Author "))),"'","''")
还可以用函数:
Const C_SqlStr="',count,user,User,Count,1=1,and,2=2" '需要过滤的字符串序列,每个字符串之间用“,”分隔

Dim Reader

Function R_Reader(R_Str,F_Str)
Dim i

If R_Str="" Or F_Str="" Then
Exit Function
End If

Reader=Split(R_Str,F_Str)

For i=0 To Ubound(Reader,1)
Reader(i)=Cstr(Trim(Reader(i)))
Next
R_Reader=Ubound(Reader,1)
End Function

Function S_Request(S_Str)
Dim Temp,i
If S_Str="" Then
Exit Function
End If

Temp=Request(S_Str)
For i=0 To R_Reader(C_SqlStr,",")
Temp=Replace(Temp,CStr(Reader(i)),"")
Next
Temp=Replace(Temp,Chr(34),"")
S_Request=Cstr(Trim(Temp))
Erase Reader
End Function

用法:

原来的例如这样的语句:

Author =request("Author ")

现在写成:

Author =S_Request("Author ")

即可实现非法字符串过滤。

Author =replace(trim(request("Author "))),"'","''")
还可以用函数:
Const C_SqlStr="',count,user,User,Count,1=1,and,2=2" '需要过滤的字符串序列,每个字符串之间用“,”分隔

Dim Reader

Function R_Reader(R_Str,F_Str)
Dim i

If R_Str="" Or F_Str="" Then
Exit Function
End If

Reader=Split(R_Str,F_Str)

For i=0 To Ubound(Reader,1)
Reader(i)=Cstr(Trim(Reader(i)))
Next
R_Reader=Ubound(Reader,1)
End Function

Function S_Request(S_Str)
Dim Temp,i
If S_Str="" Then
Exit Function
End If

Temp=Request(S_Str)
For i=0 To R_Reader(C_SqlStr,",")
Temp=Replace(Temp,CStr(Reader(i)),"")
Next
Temp=Replace(Temp,Chr(34),"")
S_Request=Cstr(Trim(Temp))
Erase Reader
End Function

用法:

原来的例如这样的语句:

Author =request("Author ")


SQL中怎么用ALTER DATABASE语句修改数据库
ALTER DATABASE 支持数据库选项的设置。在早期版本的 Microsoft® SQL Server™ 中,这些选项可以通过 sp_dboption 存储过程来设置。在此次发布的版本中,SQL Server 继续支持 sp_dboption存储过程,但在未来版本中可能不再支持。可使用 DATABASEPROPERTYEX 函数检索数据库选项的当前设置。语法:ALT...

SQL中模式创建的语法?
sql语句集锦 --语 句-- --功 能-- --数据操作select --从数据库表中检索数据行和列insert --向数据库表添加新数据行delete --从数据库表中删除数据行update --更新数据库表中的数据--数据定义create table --创建一个数据库表drop table --从数据库中删除表alter table --修改数据库表结构create view...

SQL server怎样使用ALTER 语句修改字段名
“execute sp_rename '表名.字段名','新字段名'”,如图所示。例子修改:execute sp_rename 'student.name','nameNew'3、然后是修改类型,使用sql语句:“alter table‘表名’ alter column‘字段名称 类型’not null”。例子修改:alter table student alter column nameNew int not null ...

SQL 删除一个字段
删除字段的语句:ALTER TABLE aaa DROP COLUMN name 。语法:某些数据库系统不允许这种在数据库表中删除列的方式 (DROP COLUMN column_name)。要改变表中列的数据类型,使用下列语法:实例演示:1、新的 "Persons" 表类似这样:2、删除 "Person" 表中的 "Birthday" 列:3、执行结果如下:...

sql server怎样用代码建立数据库,详细代码
2.创建数据表 选中数据库下的表右击,在出现的对话框最上方有新建表选项,新出现的对话框中有列名、数据类型、允许Null值三列,这里可以添加表的的列,添加好列后保存Ctrl+S或者点击上方的保存,填写表名称确定就创建好了。二、使用SQL语句创建 1.创建数据库create database stuDB --stuDB是数据库...

SQL数据库语句大全
在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是...

SQL server 2005 的简单语句
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。其次,大家来看一些不错的sql语句 1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)法一:select * into b from a where 1 <>1 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源...

在SQL SERVER 的表中,插入新的字段
ALTER TABLE <表名> ADD <列名> <类型> <默认值> 例如:在T1表中新增INT型默认值为0的F1列 ALTER TABLE T1 ADD F1 INT DEFAULT('0')。SQL即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库...

执行SQL语句出错:未能找到存储过程"sp-addsrvrolemember".
这是SQL自带的存储过程,在master的存储过程里,可以用以下语句重建,或者重装SQL,记得做好备份工作。create procedure sp_addsrvrolemember loginame sysname,-- login name rolename sysname = NULL-- server role name as -- SETUP RUNTIME OPTIONS \/ DECLARE VARIABLES -- set nocount on declare @...

sql server2005中数据类型的Numeric(18,0) 是什么意思?
sql server2005中数据类型百的Numeric(18,0)意思是总的位数为18位数字,小数点后的位数为0位。NUMERIC数据类型使用标准、可变长度的内部格式来存储数字。Microsoft Jet 数据库引擎 SQL 数据类型 由13个基本数据类型组成,它们是由 Microsoft Jet 数据库引擎和几个验证过的有效同义字定义的。常见的有:...

高碑店市13932192001: ASP中的SQL语句如何使用参数向数据库中写入数据?
糜京辰龙: 我理解你的需求,很可惜,ASP 不支持 @ 添加参数的方法.不过,你可以使用 Recordset 对象的 AddNew 方法,能完美的满足你的需求.不过你为什么不用 .net 平台呢?.net 还可以实现类型化的数据添加,更安全方便.如果一定要用 asp,还...

高碑店市13932192001: 在ASP.NET中如何给参数化SQL语句赋参数值 -
糜京辰龙: 没看懂你说的意思 我一般用着两种方法 string sql = "update ClassType set className='"+className+"' where classId="+classId; string sql = "insert into TuiGuang(tgName,tgUrl,orderNum)values(@tgName,@tgUrl,@orderNum)"; ...

高碑店市13932192001: [asp学习]怎样使用SQL的存储过程,其参数怎么使用?
糜京辰龙: 呵呵,刚刚找到了相关文章,试了1下,可以运行...rs.open sql,conn,1,1sql="存储过程名称“

高碑店市13932192001: asp 怎么在sql语句中用Function!!! -
糜京辰龙: 你没有必要写一个函数,而且自定函数在sql语句中是不认的.sql="select * from where id+1>10 这样就行了,,,sql中是可以进行运算的.

高碑店市13932192001: ASP.NET C# SQL参数化 -
糜京辰龙: 代码没有,倒是可以给你三个建议:1、使用存储过程,这样就参数化了,可以防止sql语句的非法注入2、写一个函数,把插入语句的sql中的 ' 字符替换为空: public static string Filtered(string str) { str = str.Replace("'", ""); str = str.Replace(...

高碑店市13932192001: asp.net中怎么向sql语句里传参数阿 -
糜京辰龙: 你得先建一个参数表,才能传阿:para = new Hashtable(); para.Add ("@ID" ,Id); SqlParameter []param = BuildParams.Build (para); SqlDataReader dr = SQLHelper.ExecuteReader (数据库连接字符串,CommandType.StoredProcedure ,数据库语句 ,param)) 然后@ID就是要传得参数了,select * from talbe where id = @ID 还有问题发信给我好了,E-mail:tjoy7d@126.com

高碑店市13932192001: ASP.NET 带参数的SQL语句 -
糜京辰龙: 接错提示的内容:“/”应用程序中的服务器错误. SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确.说明:执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致...

高碑店市13932192001: 关于asp中简单的sql语句? -
糜京辰龙: user 是数据库的保留字,如果不加[]就回提示错误.加[user]表示,它不在是保留字,比如,你字段名叫name你select name from table 也会出错的.所以,要加上[name]才可以.给你的建议是,表名,或字段名,不要使用这样的保留字,如你不知道都有什么保留字,就把字段名稍微长一点,尽量不要使用常用英文单词就可以了. 比如名字字段你写成UserName就不用加[]了.不用加的说明不是保留字.还有,比如MYSQL数据库你加了[]就不好用了,以为那个数据库不支持.呵呵……

高碑店市13932192001: asp 调用 SQL 作业
糜京辰龙: 你指的是代理中的作业?那是没办法调用的,是数据库的计划. 如果是需要传递参数并可以运行,那应该是存储过程了.调用方法就简单了,和sql语句调用一样就可以. 比如conn.execute("存储过程 参数"),多个参数就在存储过程后面跟多个就可以了,记得用逗号分隔

高碑店市13932192001: asp.net中sql语句的使用,sql语句看不懂,求大家解释一下,小菜鸟一枚 -
糜京辰龙: ISNULL(APPLNO,'') + ISNULL(APPLNOB,'')@APPLNO AND COMPANY LIKE @COMPANY 解释一下,这里面有两个逻辑判断,并且是逻辑“和” 一个是ISNULL(APPLNO,'') + ISNULL(APPLNOB,'')@APPLNO 一个是COMPANY LIKE @...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网