怎么用ASP连接sql数据库

怎么用ASP连接sql数据库,第1张

能不能详细点啊。

access数据库是mdb文件,如果你用access打开时不能编辑,那就检查一下这个文件是否设置为只读了。

而如果是在ASP中打开这个mdb文件进行数据库的读写,步聚如下:

一、创建Adodb.Connection对象用来连接数据库

使用以下语句:Set Conn=Server.CreateObject("Adodb.Connection")

打开数据库连接:Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source="&server.mappath("xxx.mdb")

其中的xxx.mdb就是你的access数据库名称(可以加上路径例如:/data/xxx.mdb。

二、创建adodb.recordset记录集对象来打开数据表并获取记录集

使用以下语句:

set rs=server.createobject("adodb.recordset")

rs.open "select * from xxtable",conn,1,3

这样就打开了xxtable这个表,并返回了其中的所有记录,并且是以可编辑状态打开的。其中的conn即是你的数据库连接对象的名称,后面紧跟着的1是recordset记录集对象的游标类型,此处为1表示你通过此SQL语句获得的记录集的游标可以前后移动,这样你就可以进行记录集的循环等 *** 作。最后面的一个数字3,是记录集的锁定类型,3表示可编辑

关于游标类型及锁定类型可以百度搜索一下

通过上面两步,你已经获得了一些记录集并且处于可编辑这些记录集的状态了

接下来就可以使用rs.addnew,rs.update进行记录的新增,更新 *** 作。

比如新增:

rs.addnew() '表示新增一条记录

rs("name")="test1"

rs("pass")="1234"

rs.update()

这样就新增了一条记录,其中的rs.addnew()表示新增一条记录,紧接着用rs("name"),rs("pass")来写入数据到name,pass这两个字段中,然后使用rs.update来保存一下你刚才的写入,这样一条新记录的插入就完成了。

而如果你只是修改一条已有的记录,则不需要rs.addnew(),后面的代码一样即可完成。不过修改记录一般是会先查询指定条件的某一条记录再进行rs.updae

当然你也可以不使用recordset记录集对象,而直接用sql语句的insert,update等来完成。

另外补充说明一点:

如果你发现用recordset或是sql的insert,update不能成功增加记录或修改记录,那么你就检查一下你的这个数据库连接代码是否连接成功(也就是数据库文件的路径是否写对)。如果这些都对,那么你再检查这个数据库文件是否是只读状态,如果也不是只读状态,那么就应该是文件权限的问题了。当你的MDB文件在NTFS格式的磁盘分区中时,需要设置文件的权限才可以写入数据,否则就只能读取。

using System  

using System.Collections.Generic  

using System.Linq  

using System.Web  

using System.Web.UI  

using System.Web.UI.WebControls  

using System.Data.SqlClient     //注意需要添加此句  

  

namespace aspnet3  

{  

    public partial class datatest : System.Web.UI.Page  

    {  

        protected void Page_Load(object sender, EventArgs e)  

        {  

            string strconn = "server=localhostuid=sapwd=longltdatabase=School"   

            SqlConnection conn = new SqlConnection(strconn)   //创建连接   

            string sql = "select * from students"   

            conn.Open()   

            SqlCommand cmd = new SqlCommand(sql, conn)      //执行查询  

            Response.Write("连接成功")  

            SqlDataReader dr = cmd.ExecuteReader()          //查询结果  

            if (dr.Read())  

            {  

                 //利用dr[索引]对数据库表进行 *** 作,dr[]返回object;  

                    //可以用字段做索引,也可用列号0,1..做索引  

                Response.Write(dr[0].ToString() + "<br>")  

            }  

  

           // this.Lab.Text = "suc"  

        }  

    }  

}

在上面的例子中,我们连接了一个sa下的School数据库,并查询了其中students字段的内容。

连接数据库分为三个步骤:先定义连接信息,再创建一个连接,最后打开连接

string strconn = "server=localhostuid=sapwd=longltdatabase=School"  //在这一段修改数据库的信息 SqlConnection conn = new SqlConnection(strconn)//创建连接 conn.Open()//打开连接

它的各步骤及参数意义如下:

第一行程序:利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。例如数据库是Test.mdb,则该行程序成为:DbPath=Server.MapPath(“Test.mdb”)。

第二行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。

第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库:driver={Microsoft

Access

Driver

(*.mdb)}。另一个参数dbq=

&

DbPath,运算后等效于dbq=Server.MapPath(数据库名)

,是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。到这里,就已经打开了数据库名指定的数据库。如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9654270.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存