数据库ASP的读取和写入
- 格式:pdf
- 大小:95.71 KB
- 文档页数:3
网站:1.服务器的作用:服务器是网络环境中的高性能计算机,它侦听网络上的其他计算机(客户端)提交的服务请求,并提供相应的服务。
为此,服务器必须具有承担服务并且保障服务的能力。
它的高性能主要体现在高速度的运算能力、长时间的可靠运行、强大的外部数据吞吐能力等方面.例如网络游戏, 100个人同时在线,就代表有100个"客户端", 这100个人游戏时所产生的数据变化,就传输到服务器上计算并存储.2.学习mysql 和access2.数据库的连接。
提取。
1)建立数据库并且将数据库里的内容提取(新建index1.asp)在这里用到如下数据库连接代码如下:<%ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zcnj.mdb")Set conn = Server.CreateObject("ADODB.Connection")conn.open ConnectStringset yzyrs=server.createObject("adodb.recordset")sql="select * from zc"yzyrs.open sql,conn,1,1'将数据库里和数据库里的表都打开。
为下面提出数据里的东西做准备。
%><body><%的=yzyrs("zc")'将数据库里的东西提取出来。
%></body>2)将数据写入数据库(即利用表单将客户端客户输入到浏览器里面的内容自动更新到数据库)新建add.asp在body部分插入一个表单然后在表单里插入一个表格具体操作如下记住这里的name为zcnj将form的action定为“addman1”(意思是客户端在点击提交之后会转向addman1这个页面)3)接着新建一个addman1的文件把里面的内容删除,写入如下内容<%'打开数据库ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("zcnj.mdb")‘数据库名为zcnjSet conn = Server.CreateObject("ADODB.Connection")conn.open ConnectString'打开表set rs=server.createobject("adodb.recordset")rs.open "Select * from zc",conn,3,3 '表的名称为zc conn 3,3的意思是写入数据库'set rs=server.createObject("adodb.recordset")'sql="select * from zc"'rs.open sql,conn,3,3rs.AddNew ‘增加数据rs("zc")=request.form("zcnj")rs.Updaters.closeset conn=nothingset rs=nothing%><script language=vbscript>MsgBox "提示:最新信息动态成功登记。
⽤户控件读取以及赋值XML内容如下:复制代码代码如下:<?xml version="1.0" encoding="utf-8" ?><SystemVersion><Item><Version_ID>1</Version_ID><Version_Name>CN</Version_Name></Item><Item><Version_ID>2</Version_ID><Version_Name>EN</Version_Name></Item></SystemVersion>⽤户控件的关键代码:SystemVersion.ascx复制代码代码如下:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="SystemVersion.ascx.cs" Inherits="UserControls_SystemVersion" %><!-- Value是传⼊的值 --><div style="white-space:nowrap"><asp:DropDownList ID="ddlVersion" runat="server"></asp:DropDownList></div>后台⽂件:复制代码代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data;using System.Xml;using System.Xml.Linq;public partial class UserControls_SystemVersion : erControl{private const string CON_FilePath = "~/App_Data/sysVersion.xml";//// <summary>/// 下拉框赋值/// </summary>public string Value{set { ViewState["Value"] = value; }get { return ViewState["Value"] == null ? null : ViewState["Value"].ToString().Trim(); }}protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){DdlBind();}}public void DdlBind(){XElement xDoc = XElement.Load(Server.MapPath(CON_FilePath)); // Create the queryvar lVersion = from c in xDoc.Descendants("Item")where c.Element("Version_ID").Value == "1" //⽬前只显⽰CN select new{Version_Name = c.Element("Version_Name").Value,Version_ID = c.Element("Version_ID").Value};ddlVersion.DataSource = lVersion.ToList();ddlVersion.DataTextField = "Version_Name";ddlVersion.DataValueField = "Version_Name";ddlVersion.DataBind();if (Value != null){ddlVersion.SelectedValue=Value;}}}。
ASP与数据库-连接、写入、修改、删除、显示代码Recordset属性与方法PageCount 属性: 决定 Recordset 对象包括多少“页”的数据。
这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。
必须注意也并不是所有的数据提供者都支持此项属性。
PageSize 属性:显示 Recordset 对象每一页显示的记录数。
PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。
设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。
PageSize 属性能随时被设定。
RecordCount 属性:显示 Recordset 对象记录的总数。
rs.RecordCount:游标中的数据记录总数。
rs.MoveFirst:指向第一条记录。
rs.Move(6): 移动到第6条记录。
rs.MoveLast:指向最后一条记录。
rs.MovePrev:指向上一条记录。
rs.MoveNext:指向下一条记录。
rs.GetRows:将数据放入数组中Recordset对象的Open函数:Rs.Open 数据表名称或SQL指令,Connection对象,Recordset类型,锁定类型参数一:若指定成数据表名称,则打开整个数据表,若指定成Select指令,则所建立的Recordset对象是Select指令选取的数据记录的结果。
参数二:传入某一个已打开的数据库的Connection对象。
参数三:是Recordset类型,它含有下表的四种设置值:Recordset类型的设置值意义AdOpenForwardOnly(=0) 只读,且当前数据记录只能向下移动AdOpenStatic(=3) 只读,当前数据记录可自由移动AdOpenKeyset(=1) 可读写,当前数据记录可自由移动AdOpenDynamic(=2) 可读写,当前数据记录可自由移动AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时,若以AdOpenKeyset 模式打开数据表,则无法看到其他人新增的数据记录(除非重新启动),如果是以AdOpenDynamic模式打开数据库,则可以看到其他人新增的数据记录。
学习目的:学会数据库的基本操作(写入记录)数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。
今天我们先学习写入记录。
先建立一个表单,命名为form.htm(或者为form.asp):<form name="form1" method="post" action="example5.asp">name <input type="text" name="name"><br>tel <input type="text" name="tel"><br>message <input type="text" name="message" value=""><br><input type="submit" name="Submit" value="提交"><input type="reset" name="Submit2" value="重置"></form>表单提交到example5.asp,下面是example5.as p的代码:<%set conn=server.createobject("adodb.connection")conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")name=request.form("name")tel=request.form("tel")message=request.form("message")exec="insert into guestbook(name,tel,message)values('"+name+"',"+tel+",'"+message+"')"conn.execute execconn.closeset conn=nothingresponse.write "记录添加成功!"%>在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。
ASP对数据库的操作ASP(Active Server Pages)是一种用于创建动态网页的编程技术,它可以通过与数据库进行交互来动态地显示、检索、更新和删除数据。
在下面的文章中,将介绍ASP对数据库的操作的一些常见技术和方法。
一、数据库连接在ASP中,连接到数据库是第一步。
可以使用以下步骤进行数据库连接:1. 引用ADO库:ADO(ActiveX Data Objects)是一种用于访问数据库的COM组件。
因此,首先需要在ASP页面的开头引用ADO库,例如:```asp<!--#include virtual="/adovbs.inc"-->```2. 创建Connection对象:使用以下代码创建一个Connection对象:```aspDim connSet conn = Server.CreateObject("ADODB.Connection")```3. 打开数据库连接:使用Open方法打开数据库连接,并指定数据库驱动程序和连接字符串,例如:```aspconn.Open "DRIVER={SQLServer};SERVER=server_name;DATABASE=db_name;UID=user_name;PWD=pa ssword;"```二、查询数据一般来说,查询数据是ASP对数据库进行的最常见的操作之一、可以使用以下步骤查询数据库:1. 创建Recordset对象:使用以下代码创建一个Recordset对象:```aspDim rsSet rs = Server.CreateObject("ADODB.Recordset")```2. 执行SQL语句:使用Open方法执行SQL语句,并使用Recordset 对象接收返回的数据,例如:```asprs.Open "SELECT * FROM table_name", conn```3. 读取数据:使用MoveNext和EOF方法循环读取Recordset对象的数据,例如:```aspDo While Not rs.EOFResponse.Write rs("column_name")rs.MoveNextLoop```4. 关闭Recordset对象:使用Close方法关闭Recordset对象,例如:```asprs.CloseSet rs = Nothing```三、插入数据除了查询数据,ASP还可以向数据库中插入数据。
ASP 文件内容操作在了解了TextStream对象提供的属性和方法之后,本节会使用这些方法对文件进行读写以实现常用的操作。
在开始之前,首先介绍一下如何创建TextStream对象。
ASP可以使用3种方法创建或者打开一个文本文件并返回TextStram对象。
1)CreateTextFile(filename,overwrite,unicode)说明见表3-3所示。
2)OpenTextFile(filename,iomode,create,format)说明见表3-3所示。
3)OpenAsTextStream(iomode,format)打开一个指定的文件并且返回一个TextStream对象,可用于对该文件的读、写或者追加。
iomode参数说明了需要的访问类型,可选值有ForReading(1)(默认)、Fo rWriting(2)、ForAppending(8)。
Format参数说明了读写文件的数据格式,可选值有T ristateFalse(0)(默认),说明用ASCII数据格式;TristateTrue(-1)说明用Unicode数据格式;TristateUseDefault(-2)说明使用系统默认的格式。
1.显示文件内容下面是第一个程序,该程序将创建一个文本文件“my.txt”并向该文件中写入文本,然后将写入的文本读出并在浏览器上显示出来。
程序运行效果如图3-10所示。
图3-10 读取文件内容该程序使用FileSystemObject对象的CreateTextFile方法在当前目录上创建了一个文本文件“my.txt”,使用与之对应的TextStream对象实例tsObj的writeLine方法向该文件中写入了一行数据;TextStream对象的Close方法可以关闭与TextStream 对象实例相对应的文本文件。
通过使用TextStream对象还可以读取文件的部分内容。
例如,下面的代码在上执行上述代码后,显示的内容如下:现在,如果要读取文件中从某一部分开始到最后的内容,则可以使用TextStrea m对象的Skip()方法。
我的ASP经验之路(5)—ASP如何进行数据库写入操作数据库名为data.mdb,数据库里面已经有3条记录了,那是手工打开表添加进去的,那么用ASP怎么样插入数据库呢?为了条理更清晰写,我们将他分成三个部分:分别为提交数据页面、保存数据页面、读取数据页面。
1、提交数据表单的页面我们将其命名为index.htm 代码如下:<html><head><title>提交数据</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body><form name="form1" method="post" action="SaveData.asp"><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0"><tr><td width="31%" height="26"><div align="right">公司名称:</div></td><td width="69%"><input name="companyname" type="text" id="companyname"></td></tr><tr><td height="26"><div align="right">电话:</div></td><td><input name="tel" type="text" id="tel"></td></tr><tr><td height="26"><div align="right">地址:</div></td><td><input name="address" type="text" id="address"></td></tr><tr><td height="26"><div align="right">网址:</div></td><td><input name="website" type="text" id="website"></td></tr><tr><td height="30"> </td><td><input type="submit" name="Submit" value="提交"></td></tr></table></form></body></html>2、保存数据页面我们将其命名为savedata.asp这个文件我们将结合前面说过的request对象来取得表单的值,然后保存写入数据库,所有代码如下:<%dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库'取得表单数据companyname=request.form("companyname") '把文本框companyname的值赋于变量companynametel=request.form("tel") '把文本框tel的值赋于变量teladdress=request.form("address") '把文本框address的值赋于变量addresswebsite=request.form("website") '把文本框website的值赋于变量websiteset rs=server.CreateObject("adodb.recordset") '创建rs记录集sql="select * from [company]" '读取数据库的SQL语句串rs.open sql,conn,3,3 '打开记录集,当需要对数据库进行更新操作时,用3,3,如果只需要读取数据库,用1,1 这个以后会解释。
ASP对数据库的操作ASP(Active Server Pages)是一种用于构建动态网站的服务器端脚本语言。
在ASP中,我们可以使用一些内置对象和方法来与数据库进行交互。
下面将介绍ASP中对数据库的操作。
1.连接数据库:在ASP中,我们可以使用ADO(ActiveX Data Objects)来连接数据库。
ADO提供了一组对象和方法,用于连接不同类型的数据库。
以下是连接数据库的基本步骤:- 创建ADO对象:通过创建一个ADO对象来连接数据库。
常用的ADO 对象包括Connection、Recordset等。
-设置连接字符串:连接字符串包含了连接数据库所需的信息,如数据库类型、服务器名、用户名、密码等。
可以根据不同数据库类型设置不同的连接字符串。
- 打开数据库连接:使用Connection对象的Open方法来打开数据库连接。
2.执行SQL语句:在连接好数据库后,我们可以执行SQL语句来对数据库进行操作。
ASP提供了几种方法来执行SQL语句:- Execute方法:使用Connection对象的Execute方法可以执行任意SQL语句,如插入、更新、删除等。
执行后返回受影响的行数。
- ExecuteScalar方法:用于执行查询语句,并返回查询结果的第一行第一列的值,适用于单个结果的查询。
- ExecuteReader方法:用于执行查询语句,并返回一个DataReader 对象,适用于多个结果的查询。
3.事务处理:在数据库操作中,有时需要保证一系列的操作要么全部成功,要么全部失败,这时可以使用事务来管理操作。
ASP中有以下几个方法可用于事务处理:- BeginTrans方法:用于开始一个事务。
- RollbackTrans方法:用于回滚事务,撤销之前的操作。
4.数据库查询结果处理:在执行查询语句后,我们需要获取查询结果并进行相应处理。
ASP提供了Recordset对象来处理数据库查询结果:- MoveNext方法:用于将指针移动到结果集的下一行。
AspNet 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小.txt心脏是一座有两间卧室的房子,一间住着痛苦,一间住着快乐。
人不能笑得太响,否则会吵醒隔壁的痛苦。
using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Text;using System.IO;namespace EC{/// <summary>/// FileObj 的摘要说明/// </summary>public class FileObj{#region 构造函数private bool _alreadyDispose = false;public FileObj(){//// TODO: 在此处添加构造函数逻辑//}~FileObj(){Dispose(); ;}protected virtual void Dispose(bool isDisposing){if (_alreadyDispose) return;//if (isDisposing)//{// if (xml != null)// {// xml = null;// }//}_alreadyDispose = true;}#endregion#region IDisposable 成员public void Dispose(){Dispose(true);GC.SuppressFinalize(this);}#endregion#region 取得文件后缀名/***************************************** 函数名称:GetPostfixStr* 功能说明:取得文件后缀名* 参数:filename:文件名称* 调用示列:* string filename = "aaa.aspx";* string s = EC.FileObj.GetPostfixStr(filename); *****************************************//// <summary>/// 取后缀名/// </summary>/// <param name="filename">文件名</param>/// <returns>.gif|.html格式</returns>public static string GetPostfixStr(string filename){int start = stIndexOf(".");int length = filename.Length;string postfix = filename.Substring(start, length - start);return postfix;}#endregion#region 写文件/***************************************** 函数名称:WriteFile* 功能说明:当文件不存时,则创建文件,并追加文件* 参数:Path:文件路径,Strings:文本内容* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string Strings = "这是我写的内容啊";* EC.FileObj.WriteFile(Path,Strings);*****************************************//// <summary>/// 写文件/// </summary>/// <param name="Path">文件路径</param>/// <param name="Strings">文件内容</param>public static void WriteFile(string Path, string Strings){if (!System.IO.File.Exists(Path)){//Directory.CreateDirectory(Path);System.IO.FileStream f = System.IO.File.Create(Path);f.Close();f.Dispose();}System.IO.StreamWriter f2 = new System.IO.StreamWriter(Path, true, System.Text.Encoding.UTF8);f2.WriteLine(Strings);f2.Close();f2.Dispose();}#endregion#region 读文件/***************************************** 函数名称:ReadFile* 功能说明:读取文本内容* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string s = EC.FileObj.ReadFile(Path);*****************************************//// <summary>/// 读文件/// </summary>/// <param name="Path">文件路径</param>/// <returns></returns>public static string ReadFile(string Path){string s = "";if (!System.IO.File.Exists(Path))s = "不存在相应的目录";else{StreamReader f2 = new StreamReader(Path, System.Text.Encoding.GetEncoding("gb2312"));s = f2.ReadToEnd();f2.Close();f2.Dispose();}return s;}#endregion#region 追加文件/***************************************** 函数名称:FileAdd* 功能说明:追加文件内容* 参数:Path:文件路径,strings:内容* 调用示列:* string Path = Server.MapPath("Default2.aspx");* string Strings = "新追加内容";* EC.FileObj.FileAdd(Path, Strings);*****************************************//// <summary>/// 追加文件/// </summary>/// <param name="Path">文件路径</param>/// <param name="strings">内容</param>public static void FileAdd(string Path, string strings){StreamWriter sw = File.AppendText(Path);sw.Write(strings);sw.Flush();sw.Close();sw.Dispose();}#endregion#region 拷贝文件/***************************************** 函数名称:FileCoppy* 功能说明:拷贝文件* 参数:OrignFile:原始文件,NewFile:新文件路径* 调用示列:* string OrignFile = Server.MapPath("Default2.aspx"); * string NewFile = Server.MapPath("Default3.aspx");* EC.FileObj.FileCoppy(OrignFile, NewFile);*****************************************//// <summary>/// 拷贝文件/// </summary>/// <param name="OrignFile">原始文件</param>/// <param name="NewFile">新文件路径</param>public static void FileCoppy(string OrignFile, string NewFile){File.Copy(OrignFile, NewFile, true);}#endregion#region 删除文件/***************************************** 函数名称:FileDel* 功能说明:删除文件* 参数:Path:文件路径* 调用示列:* string Path = Server.MapPath("Default3.aspx");* EC.FileObj.FileDel(Path);*****************************************//// <summary>/// 删除文件/// </summary>/// <param name="Path">路径</param>public static void FileDel(string Path){File.Delete(Path);}#endregion#region 移动文件/***************************************** 函数名称:FileMove* 功能说明:移动文件* 参数:OrignFile:原始路径,NewFile:新文件路径* 调用示列:* string OrignFile = Server.MapPath("../说明.txt"); * string NewFile = Server.MapPath("../../说明.txt");* EC.FileObj.FileMove(OrignFile, NewFile);*****************************************//// <summary>/// 移动文件/// </summary>/// <param name="OrignFile">原始路径</param>/// <param name="NewFile">新路径</param>public static void FileMove(string OrignFile, string NewFile){File.Move(OrignFile, NewFile);}#endregion#region 在当前目录下创建目录/***************************************** 函数名称:FolderCreate* 功能说明:在当前目录下创建目录* 参数:OrignFolder:当前目录,NewFloder:新目录* 调用示列:* string OrignFolder = Server.MapPath("test/");* string NewFloder = "new";* EC.FileObj.FolderCreate(OrignFolder, NewFloder);*****************************************//// <summary>/// 在当前目录下创建目录/// </summary>/// <param name="OrignFolder">当前目录</param>/// <param name="NewFloder">新目录</param>public static void FolderCreate(string OrignFolder, string NewFloder) {Directory.SetCurrentDirectory(OrignFolder);Directory.CreateDirectory(NewFloder);}/// <summary>/// 创建文件夹/// </summary>/// <param name="Path"></param>public static void FolderCreate(string Path){// 判断目标目录是否存在如果不存在则新建之if (!Directory.Exists(Path))Directory.CreateDirectory(Path);}#endregion#region 创建目录public static void FileCreate(string Path){FileInfo CreateFile = new FileInfo(Path); //创建文件if (!CreateFile.Exists){FileStream FS = CreateFile.Create();FS.Close();}}#endregion#region 递归删除文件夹目录及文件/***************************************** 函数名称:DeleteFolder* 功能说明:递归删除文件夹目录及文件* 参数:dir:文件夹路径* 调用示列:* string dir = Server.MapPath("test/");* EC.FileObj.DeleteFolder(dir);*****************************************//// <summary>/// 递归删除文件夹目录及文件/// </summary>/// <param name="dir"></param>/// <returns></returns>public static void DeleteFolder(string dir){if (Directory.Exists(dir)) //如果存在这个文件夹删除之{foreach (string d in Directory.GetFileSystemEntries(dir)) {if (File.Exists(d))File.Delete(d); //直接删除其中的文件elseDeleteFolder(d); //递归删除子文件夹}Directory.Delete(dir, true); //删除已空文件夹}}#endregion#region 将指定文件夹下面的所有内容copy到目标文件夹下面果目标文件夹为只读属性就会报错。
(一)数据库的选择:有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。
那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。
对于非服务器级的数据库建议使用ACCESS97。
因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。
(2)ACCESS支持的SQL指令非常齐全。
(3)ACCESS ODBC驱动程序的效率非常高。
虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。
(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。
本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。
(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。
(1)首先建立ACCESS数据库customer.mdb(今后有用的)。
建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。
将表保存为"客户"(今后有用的,===>看看图)。
注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。
建议今后做数据库时最好都加上这2项,不会没用的。
此外,在保存表时ACCESS 会询问是否建立一个住关键字,我们不需要它所以不必建立。
还有:时间字段的"默认值"设成"now()",即去系统当时的时间。
同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。
===>看看图(2)建立递交表单add.htm:源代码如下:<html><head><title>添加数据库记录</title><meta http-equiv="Content-Type" content="text/html; charset=gb2312"></head><body bgcolor="#FFFFFF"><p align="center"><font size="5">添加数据库记录</font></p><form method="post" action="adddatabase.asp"><div align="center"><table width="46%" border="0"><tr><td width="28%"><div align="right">公司名称:</div></td><td width="72%"><input type="text" name="CompanyName"></td></tr><tr><td width="28%"><div align="right">联络人姓名:</div></td><td width="72%"><input type="text" name="CName"></td></tr><tr><td width="28%"><div align="right">所在城市:</div></td><td width="72%"><input type="text" name="City"></td></tr><tr><td width="28%"><div align="right">电话号码:</div></td><td width="72%"><input type="text" name="Tel"></td></tr><tr><td width="28%"><div align="right"> </div></td><td width="72%"><input type="submit" name="Submit" value="Submit"> <input type="reset" name="reset" value="Reset"></td></tr></table></div></form></body></html>这与普通的HTML没有任何区别,关键部分已经用红色标记了。
用ASP访问数据库的几种常见方式ActiveX Data Objects (ADO) 是一项容易使用并且可扩展的将数据库访问添加到Web 页的技术。
可以使用ADO 去编写紧凑简明的脚本以便连接到Open Database Connectivity (ODBC) 兼容的数据库和OLE DB 兼容的数据源。
如果您是一个对数据库连接有一定了解的脚本编写人员,那么您将发现ADO 命令语句并不复杂而且容易掌握。
同样地,如果您是一个经验丰富的数据库编程人员,您将会正确认识ADO 的先进的与语言无关性和查询处理功能。
创建ODBC DSN 文件在创建数据库脚本之前,必须提供一条使ADO 定位、标识和与数据库通讯的途径。
数据库驱动程序使用Data Source Name (DSN) 定位和标识特定的ODBC 兼容数据库,将信息从Web 应用程序传递给数据库。
典型情况下,DSN 包含数据库配置、用户安全性和定位信息,且可以获取Windows NT 注册表项中或文本文件的表格。
通过ODBC,您可以选择希望创建的DSN 的类型:用户、系统或文件。
用户和系统DSN 存储在Windows NT 注册表中。
系统DSN 允许所有的用户登录到特定的服务器上去访问数据库,而用户DSN 使用适当的安全身份证明限制数据库到特定用户的连接。
文件DSN 用于从文本文件中获取表格,提供了对多用户的访问,并且通过复制DSN 文件,可以轻易地从一个服务器转移到另一个服务器。
由于以上原因,本主题中的示例将使用文件DSN。
通过在Windows 的“开始”菜单打开“控制面板”,您可以创建基于DSN 的文件。
双击“ODBC”图标,然后选择“文件DSN”属性页,单击“添加”,选择数据库驱动程序,然后单击“下一步”。
按照后面的指示配置适用于您的数据库软件的DSN。
配置Microsoft Access 数据库的文件DSN在“创建新数据源”对话框中,从列表框选择“Microsoft Access Driver”,然后单击“下一步”。
把图⽚存⼊数据库和读取图⽚的⽅法⽹上关于上传图⽚到数据库的资料⾮常多,常⽤的如下:存储图⽚类型数据有以下⼏种⽅式:1.将图⽚转换为⼆进制数组(byte[])复制代码代码如下:byte[] fileData = this.FileUpload1.FileBytes;2. 根据路径将⽂件转换为2进制数组复制代码代码如下:代码public byte[] returnbyte(string strpath){// 以⼆进制⽅式读⽂件FileStream fsMyfile = new FileStream(strpath, FileMode.OpenOrCreate, FileAccess.ReadWrite);// 创建⼀个⼆进制数据流读⼊器,和打开的⽂件关联BinaryReader brMyfile = new BinaryReader(fsMyfile);// 把⽂件指针重新定位到⽂件的开始brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);byte[] bytes = brMyfile.ReadBytes(Convert.ToInt32(fsMyfile.Length.ToString()));// 关闭以上new的各个对象brMyfile.Close();return bytes;}3img 类型得到⼆进制数组复制代码代码如下:public static byte[] Getbyte(Image img){MemoryStream stream = new MemoryStream();img.Save(stream, ImageFormat.Jpeg);byte[] mydata = new byte[stream.Length];mydata = stream.ToArray();stream.Close();return mydata;}读取image类型的数据并显⽰在⽹页上的⽅式如下:1。