关于简易程序的简便性:关于用ADO操作数据库

来源:百度文库 编辑:神马品牌网 时间:2024/04/29 17:40:32
如:表b1中只有一个字段f(string型),怎样将text1的值插入新记录?
我是这样的写的:
cn.execute "insert into b1(f) values ('" & text1.text & "')"
这时如果text1中有个单引号(')就会出错了,要咋办?

还有:表b2中只有一个字段d(Date型),怎样将DTPicker1的值插入新记录?
我是这样的写的:
cn.execute "insert into b2(d) values (#" & format(DTPicker1.value,"yyyy-MM-dd hh:mm:ss") & "#)"
虽然可以,但总觉得DTPicker的value和字段都是Date型的,特意转化成string型好象多此一举了,又不知正确的写法该咋写?
cn.execute "insert into b1(f) values ('" & replace(text1.text,"'","''") & "')"
但我觉得这种方法不标准,好象绕了个弯路来实现一个简单的目的,应该有标准的方法.
而且我只说了有单引号(')不行,有双引号(")也一样不行呀,这只是目前发现的问题,不知还有没有其他问题
总而言之,应该存在一种标准的写法,可以避免这些问题~~~

这样写就好了,靠,笨(这样写有"号是可以的")
cn.execute "insert into b1(f) values ('" & replace(text1.text,"'","''") & "')"

呵呵,replace是替换字符函数,replace("'","")是将'替换个两个''号
保存日期:
cn.execute "insert into b2(d) values ('" & now() & "')"

<%
dim conn,connstr
set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db1.mdb")
conn.Open connstr
set rs=server.createobject("adodb.recordset")
rs.add
rs("password")=trim(request.form("password")
rs("skin")=trim(request.form("skin"))
rs.Update
rs.close
set rs=nothing
%>

rs.open "select * from b1",1,3
rs.add
rs.("字段名")= replace(text1.text,"'","''")
rs.update

你直接写成:
cn.EXECUTE "INSERT INTO b2(d) VALUES '"&DTPicker1.value&"'"
就行了嘛