ASP连接数据库字符串的老问题

mysterious 2004-12-09 10:28:04
我用的是先建立ODBC数据源(如userinfo),然后用
Conn.open "dsn=userinfo"

可为什么总提示出错!

本页无法显示
试图访问的网页出现问题,无法显示。

--------------------------------------------------------------------------------

请尝试以下方法:

单击 刷新按钮或者梢候再试。

打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务

--------------------------------------------------------------------------------

技术信息(适用于支持人员)

错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)
/selectDemo.asp, 第 17 行


浏览器类型:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

页:
GET /selectDemo.asp

时间:
2004年12月9日, 10:15:22


什么原因哦?帮帮俺,都2天了,还没解决
(IIS5.0+sqlserver2000个人版+win2k专业版)

我看了这上面的帖子,也试过了,不能用啊!!!!急!!!在线等!!!

...全文
638 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
yrs007 2004-12-28
  • 打赏
  • 举报
回复
楼主..如果你按我上面的方法不行的话,那就可能是你的SQL里面的的问题了.你用的用户是否给有权限~~我开发都是这样写.一点问题都没有呀~~~非常的正常呀~~ 要不重装一个SQL。重新开一个用户权限试试。。。。
mysterious 2004-12-22
  • 打赏
  • 举报
回复
明天结了
郁闷,没有解决
mysterious 2004-12-20
  • 打赏
  • 举报
回复
to yrs007:你说的我试过了,改connstr为driver=。。。那些没用的
to comszsoft:我把单引号去掉了,也没用的。最开始一直提示0e4d错误,我按上面的xiaoyuehen 说的改了连接字符串后,那个0e4d的错误就没有了,可又有新问题了,4005错误!这个问题我在csdn里面先搜过了,我就打0e4d,出来一百多张帖子,我没看完,看了一部分,都是没有解决问题,很郁闷的结了。实在不行的话,我就把sql卸了,再重装吧。没着了。

下面再详细描述一下我的问题:使用的操作系统为win2k professional,IIS为5.0版本,sqlserver2000为个人版本,编辑器为editplus。

sqlserver2000个人版的安装过程如下:
在选择认证方式的方式时,选混合 ,设置了用户名为sa的用户的密码为123456,然后顺利完成安装。
启动企业管理器,没把原来的默认数据库删除,直接新建名为testdb的数据库。在“安全性”文件夹下新建登录,登录名为coco,验证模式为sql混合,密码为coco,在数据库访问选项卡中指定访问的数据库为前面建立的testdb数据库。然后在testdb文件夹下点用户有2个,一个为dbo,另一个为coco,在coco用户的属性中选中public,datareader和datawriter三项。完成设置。

然后在控制面板的odbc管理器建一系统dsn,名为fortest,验证为windows验证,连接到的数据库为testdb数据库。测试数据源提示成功!

请问:要使用dsn的连接要怎么写才可以用?不采用建数据源的方式又该怎么写?
注意: 大家最好把帖子看完再下结论,因为很多朋友都给出了不同的解决方案。
另外:我现在在用asp.net,同样用的这个sqlserver2000个人版,就没有这个问题,我注意到.net自动生成的连接字符串为Trusted_Connection=True;erver='bct-keke';database=testdb,能够顺利完成对数据库的操作。
mysterious 2004-12-20
  • 打赏
  • 举报
回复
是系统dsn
comszsoft 2004-12-20
  • 打赏
  • 举报
回复
你用的是不适系统DSN阿,如果不是,改过来看看
mysterious 2004-12-20
  • 打赏
  • 举报
回复
waiting...
尚和空四 2004-12-17
  • 打赏
  • 举报
回复
na lai l
李尸尸 2004-12-17
  • 打赏
  • 举报
回复
select * from User where(username='zhou
操,在这一句中,你能通过真是神仙呀,SQLSERVER中这个USER还能通过,最好改成USERS吧!
上面的人都疯了!都是高手!
comszsoft 2004-12-17
  • 打赏
  • 举报
回复
connstr="Trusted_Connection=true;Server='bct-kele';Database='testdb'"
把单引号全部去掉:
connstr="Trusted_Connection=true;Server=bct-kele;Database=testdb"
yrs007 2004-12-17
  • 打赏
  • 举报
回复
还用你的SQL语句这样写就行了:
set Rs=Conn.execute("select * from User where username='zhou' and password='zhou' ")
yrs007 2004-12-17
  • 打赏
  • 举报
回复
connstr="Trusted_Connection=true;Server='bct-kele';Database='testdb'"
应该为:
connstr= "Driver={SQL Server};Server=localhost;UID=kele;PWD=kele;Database=testdb"
注意你的用户名和密码~~
yrs007 2004-12-17
  • 打赏
  • 举报
回复
<% @ language="VBS" %>
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "DSN=userinfo;Uid=kele;Pwd=kele;"
这里错了, 应该为这样的:
Conn.open "DSN=userinfo;Uid=kele;Pwd=kele;Database=数据库名;" '少了Database项啦。



set Rs=Conn.execute("select * from User where(username='zhou' and password='zhou')" )
%>
select data Demo:<p>
<TABLE border=1 align=center>
<%do while (Not Rs.EOF) %>

<TR>
<TD><% =Rs("username") %></TD><td><% =Rs("password") %></td>
</TR>

<% Rs.movenext %>
<% loop %>
</TABLE>
<% Rs.close %>


<% Conn.close %>
mysterious 2004-12-17
  • 打赏
  • 举报
回复
to xiaoyuehen:

有了点进展,提示的0x80040E4D错误消失了,可出现了新错误如下:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
/selectDemo.asp, 第 19 行


<%@ Language=VBScript%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<%

dim connstr

connstr="Trusted_Connection=true;Server='bct-kele';Database='testdb'"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open connstr Rem 这是第19行!

set Rs=Conn.execute("select * from Orders")
%>
select data Demo:<p>
<TABLE border=1 align=center>
<% do while (Not Rs.EOF) %>

<TR>
<TD><% =Rs("OrderID") %></TD><td><% =Rs("OrderDate") %></td>
</TR>

<% Rs.movenext %>
<% loop %>
</TABLE>
<% Rs.close %>


<% Conn.close %>

</BODY>
</HTML>

帮我看看啦?
mysterious 2004-12-17
  • 打赏
  • 举报
回复
to xiaoyuehen:
谢了先,马上测试!一会回来
xiaoyuehen 2004-12-16
  • 打赏
  • 举报
回复
http://support.microsoft.com/?scid=kb;zh-tw;307002&spid=555&sid=global

可能的错误: 您正試圖使用標準的 SQL Server 的帳戶驗證來建立連線,而 ADO 連接字串中沒有指定 UID 參數。

解決方案:
確認在 ADO 連接字串中加入 Trusted_Connection=yes 連接字串參數。如果您沒有加入這個參數,即使用來處理對 ASP 網頁要求的 Windows NT/Windows 2000 使用者帳戶在 SQL Server 中有相對應的 Windows 驗證登入名稱,還是會發生上述錯誤。
• 如果您想要使用標準 SQL Server 的帳戶驗證建立資料庫連線,請確認指定了 UID 與 PWD 連接字串參數。即使 DSN 的設定屬性是設為使用標準 SQL Server 帳戶驗證,您還是必須指定這些參數。如果您沒有指定這些參數,IIS 會試圖開啟信任的連線連至資料庫。

如果要使用標準 SQL Server 帳戶驗證建立連線,您必須在目標 SQL Server 上設定安全性設定,以允許使用混合模式 (NT 與 SQL Server) 帳戶驗證。如果您在連接字串中有指定有效的 UID 但漏掉了 PWD 參數,當指定的使用者識別碼包含非空白的密碼時,您會收到下面錯誤訊息:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D)

................
mysterious 2004-12-16
  • 打赏
  • 举报
回复
没有解决么?
mysterious 2004-12-13
  • 打赏
  • 举报
回复
要回了,再up一下吧
showlin 2004-12-10
  • 打赏
  • 举报
回复
你用的sql数据库
用这个吧
string="driver={SQLServer};server=127.0.0.1;uid=test;pwd=1234;database=yourdatabase"
set Conn = Server.CreateObject("ADODB.Connection")
set Rs=Server.CreateObject("ADODB.RecordSet")
Conn.Open string
mysterious 2004-12-10
  • 打赏
  • 举报
回复
to yb2008:
我在网上看到了好多连接字符串的写法,每个人给出的都不一样,字符串里的属性值也都不一样, 能 告诉我这是怎么回事么?

我装sqlserver2000个人版的时候选择的是混合验证,而且为用户名为sa的用户设置了密码。装完sqlserver2000后,在企业管理器中注册服务器时选择的是windows验证,那么我如果使用ODBC数据源的连接方式时,UID和PWD该写哪个?是我进入操作系统时的用户名和密码?还是这个用户名为sa的用户对应的用户名和密码?感觉用数据源连接很不方便,其他的连接方式字符串又该怎么写呢?平时一直用数据源连接,也不知道这到底是属于那种连接方式,对数据访问技术又没多少经验,就是在网上看的干巴巴的理论,OLEDB,ODBC,JET,ADO一堆术语,到底怎么回事也闹不清楚。请指教,谢拉先!
mysterious 2004-12-10
  • 打赏
  • 举报
回复
数据源是存在的啊,而且数据源也测试成功了!

这个是17行

Conn.open "DSN=userinfo;Uid=kele;Pwd=kele;"
加载更多回复(9)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧