DB操作 ---------------------------- DB操作的基本步骤就是: (1)建立连接 (2)执行操作 (3)关闭连接
建议的做法是: 在每个需要进行DB操作的页面,都进行以上3个步骤。 --------------------------------------------------- (1)建立连接的方法
set conn=server.createobject("Adodb.Connection") str="Provider=SQLOLEDB;Data Source=192.168.0.1;Initial Catalog=Book;User Id=sa;Password=123;" conn.open str
<1>Adodb.Connection顾名思义,是操作连接的对象 <2>conn就是一个对象实例的变量名,注意,声明一个对象实例,前面要有set。 <3>连接字符串中,声明了使用SQLOLEDB,也就是连接SQL Server,数据源是192.168.0.1,初始的数据库是Book。 如果是连接Access,Oracle等数据库,连接字符串的写法是不同的。 <4>使用Open方法之后,Conn这个连接就是打开的了,可以进行DB操作了。
(2)常见DB操作 常见的操作也就是插入数据,修改数据,删除数据。
只要构建相应的SQL语句,然后调用Connection对象的Execute 方法执行即可。
如: sql="inser into xx(a,b,c) values('1',2,'3')" conn.execute sql
sql="update xx set ...where ..." conn.execute sql
sql="delete from ...where ..." conn.execute sql
通常,这个SQL都需要通过拼接得到。
(3)关闭连接 一定要记得关闭连接。(数据库的连接是宝贵的)
conn.close '关闭连接 set conn=nothing '设置变量为nothing,可以释放变量
(4)注意事项 通常的原则就是:尽可能晚的建立连接,尽可能早的释放连接。
这样,可以给DB留下更多的可用连接,从而增强系统的性能。
比如,接收变量之后,需要进行很多的判断、循环、运算等处理,然后才会更新DB,
那么就不必一开始就建立连接。
-------------------------------------------------------------------------------- 今日作业:
比较简单,
接上次作业,将接收到变量保存到数据库。
表结构如下: --------------------------------------------------- CREATE TABLE [dbo].[BOOK] ( [book_id] [int] IDENTITY (1, 1) NOT NULL , [book_name] [nvarchar] (200) COLLATE Chinese_PRC_BIN NULL , [book_author] [nvarchar] (100) COLLATE Chinese_PRC_BIN NULL , [book_translator] [nvarchar] (100) COLLATE Chinese_PRC_BIN NULL , [book_publisher] [nvarchar] (100) COLLATE Chinese_PRC_BIN NULL , [book_publishDate] [datetime] NULL , [book_pageNumber] [int] NULL , [book_ISBN] [nvarchar] (40) COLLATE Chinese_PRC_BIN NULL , [book_Content] [ntext] COLLATE Chinese_PRC_BIN NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ----------------------------------------------------------
点评补记:
忘记点评了……………… 大家都按时完成了任务,好! ---------------------------------------------------------------------------- 1.一点提醒。 字段是文本型,值的左右用单引号括起来。 数字型,不用括起来。如book_pageNumber,左右就不必用单引号。因为SQL Server自动进行了转换,所以没出问题。 日期型,也是单引号。 2。注意替换输入中的单引号。 大家可以试一下在表单中输入包括单引号的文本,提交后会出错的…… 这是因为单引号是本来正确的SQL语句不正确了………… 解决方法就是将一个单引号替换为两个单引号 aaa=replace(aaa,"'","''") 别晕啊。 不仅是ASP,其他php,jsp等等都是这样的,只要是拼接SQL,首先就要想到替换单引号。
|