我写了一个asp.net的程序,是关于数据库连接的。代码如下:
<%@ Page Language="vb" Debug="true" %>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.OleDb" %>
<script Language="VB" RunAt="Server">
Function Get_DSN(bolSQL As Boolean) As String
'--- bolSQL: True for SQL Server, False for Access ---
If Not bolSQL Then 'Access
Get_DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& Server.MapPath("asp_net.mdb")
Else 'SQL Server
Get_DSN = "Provider=SQLOLEDB.1;Data Source=Alvinnt;User ID=sa;" _
& "Password=;Initial Catalog=ASP_Net;autotranslate=no;"
End If
End Function
Sub Check_ID()
'--- 目的:检查 ID 是否已存在 ---
Dim strSQL, uid As String
Dim bolExist As Boolean
'---
Dim strDSN As String
Dim objConn As OleDbConnection
Dim objCmd As OleDbCommand
Dim objRead As OleDbDataReader
'---
uid="Leo"
'--- 产生SQL语句 ---
strSQL = "select * from password1 where userid='" & uid & "'"
'--- Step 1:创建OleDb Connection,然后打开Access数据库 ---
strDSN = Get_DSN(False)
objConn = New OleDbConnection(strDSN)
'---
objCmd = New OleDbCommand(strSQL, objConn)
objCmd.Connection.Open() '打开Connection
'--- Step 2:执行SQL命令,并将结果保存于OleDbDataReader中 ---
objRead = objCmd.ExecuteReader() '--- Step 3:判断是否为注册的帐号
bolExist = False
While objRead.Read()
bolExist = True '帐号正确
End While
objRead = Nothing
'--- Step 4:关闭OleDbConnection
'objcmd.connection.close()
objConn.Close()
objConn = Nothing
'---
If bolExist Then 'ID已存在
Response.Write("<br><center><h1>" & vbCrLf)
Response.Write("<hr>Sorry~~~<p>" & vbCrLf)
Response.Write("本ID(<font color=red>" & uid)
Response.Write("</font>)已被另一人注册,请改用其他ID!")
Response.Write("</p></h1><hr>" & vbCrLf)
Response.Write("<a href='javascript:history.back()'>")
Response.Write("回前一画面</a>" & vbCrLf)
Response.Write("</center>" & vbCrLf)
Else
'--- 定向到15-02.aspx准备发送“确认信函” ---
'Server.Transfer("15-02.aspx")
Response.Write("成功")
End If
End Sub
</script>
<%
Check_ID()
%>
<%@ Page Language="vb" Debug="true" %>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.OleDb" %>
<script Language="VB" RunAt="Server">
Function Get_DSN(bolSQL As Boolean) As String
'--- bolSQL: True for SQL Server, False for Access ---
If Not bolSQL Then 'Access
Get_DSN = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
& Server.MapPath("asp_net.mdb")
Else 'SQL Server
Get_DSN = "Provider=SQLOLEDB.1;Data Source=Alvinnt;User ID=sa;" _
& "Password=;Initial Catalog=ASP_Net;autotranslate=no;"
End If
End Function
Sub Check_ID()
'--- 目的:检查 ID 是否已存在 ---
Dim strSQL, uid As String
Dim bolExist As Boolean
'---
Dim strDSN As String
Dim objConn As OleDbConnection
Dim objCmd As OleDbCommand
Dim objRead As OleDbDataReader
'---
uid="Leo"
'--- 产生SQL语句 ---
strSQL = "select * from password1 where userid='" & uid & "'"
'--- Step 1:创建OleDb Connection,然后打开Access数据库 ---
strDSN = Get_DSN(False)
objConn = New OleDbConnection(strDSN)
'---
objCmd = New OleDbCommand(strSQL, objConn)
objCmd.Connection.Open() '打开Connection
'--- Step 2:执行SQL命令,并将结果保存于OleDbDataReader中 ---
objRead = objCmd.ExecuteReader() '--- Step 3:判断是否为注册的帐号
bolExist = False
While objRead.Read()
bolExist = True '帐号正确
End While
objRead = Nothing
'--- Step 4:关闭OleDbConnection
'objcmd.connection.close()
objConn.Close()
objConn = Nothing
'---
If bolExist Then 'ID已存在
Response.Write("<br><center><h1>" & vbCrLf)
Response.Write("<hr>Sorry~~~<p>" & vbCrLf)
Response.Write("本ID(<font color=red>" & uid)
Response.Write("</font>)已被另一人注册,请改用其他ID!")
Response.Write("</p></h1><hr>" & vbCrLf)
Response.Write("<a href='javascript:history.back()'>")
Response.Write("回前一画面</a>" & vbCrLf)
Response.Write("</center>" & vbCrLf)
Else
'--- 定向到15-02.aspx准备发送“确认信函” ---
'Server.Transfer("15-02.aspx")
Response.Write("成功")
End If
End Sub
</script>
<%
Check_ID()
%>
解决方案 »
- 关于datareader返回值类型转换的问题?
- 如何得到客户端的内网?
- ==== [加急]如何解决DataGrid中文本过长问题??? ====
- DataList控件中关于SelectedItemTemplate的问题
- 高分求教!!:如何通过超链接传递两个以上的参数???
- 我在母板中表格TD设置了背景图片和swf,并且其他网页套用模板页,但是网页在运行时图片和SWF都不显示,那位大神知道怎么回事,谢谢
- 我在做一个外语的在线考试系统,遇到点问题?望高手不吝赐教,小弟感激涕零
- 水晶报表导出问题
- asp创建的cookie,aspx能获取么?
- 请教怎么做留言本,先加50分,不够在加
- 刚学出错。请教
- 我在日文系统下开发一个服务器端csv文件下载到本地文件 文件名为日文但出现乱码问题
未指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误源错误:
行 31: '---
行 32: objCmd = New OleDbCommand(strSQL, objConn)
行 33: objCmd.Connection.Open() '打开Connection 此处用了红色标记,也就是关于这句错了
行 34: '--- Step 2:执行SQL命令,并将结果保存于OleDbDataReader中 ---
行 35: objRead = objCmd.ExecuteReader()
源文件: E:\text3\ceshishujuku.aspx 行: 33 堆栈跟踪:
[OleDbException (0x80004005): 未指定的错误]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
System.Data.OleDb.OleDbConnection.Open() +203
ASP.ceshishujuku_aspx.Check_ID() in E:\text3\ceshishujuku.aspx:33
ASP.ceshishujuku_aspx.__Render__control1(HtmlTextWriter __output, Control parameterContainer) in E:\text3\ceshishujuku.aspx:65
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +27
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +241
System.Web.UI.Page.ProcessRequestMain() +1897 错误提示是 行 33: objCmd.Connection.Open() '打开Connection 此处用了红色标记,也就是关于这句错了。 但这没错,这是书上光盘的代码,请给位赐教~~,并送上30分,谢谢!~~
objConn.Connect();显示红色。有人知道吗?大家发挥的智慧,谢谢~~
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & Server.MapPath("asp_net.mdb")
Get_DSN="Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\text3\asp_net.mdb;" 结果也是一样的错误,这个路径是绝对没错的.
http://www.connectionstrings.com/
如果是使用read方法来连接数据库(也就是说oledbconnection or oledbcommand需要用open()打开)的话,就会报这样的错误,如果是用其他的方式打开是可以的,但我这里是判断id号是否存在,通过
While objRead.Read()
bolExist = True '帐号正确
End While
来判断的,如果用其他方式的话就不能用OleDbDataReader这个对象了.那我要是用其他方式打开,怎么来使代码与While objRead.Read()
bolExist = True '帐号正确
End While
相似呢?