none
未能创建类型为“ado.connection”的对象。 RRS feed

  • 問題

  • 未能创建类型为“ado.connection”的对象。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.Web.HttpException: 未能创建类型为“ado.connection”的对象。

    源错误:

    行 13:     Dim sql
    行 14:     Dim rs
    行 15:     conn = Server.CreateObject("ado.connection")
    行 16:     sql = "Driver={Microsoft Access Driver (*.mdb)};DBQ= " & Server.MapPath("Data.mdb")
    行 17: conn.open(sql)

    这是为什么?请高手指点!
    2008年7月1日 上午 08:33

解答

  • 找一下關鍵字 「ASP.NET Access」,有很多入門的文章可參考。

    http://www.builder.com.cn/2007/0924/521280.shtml

     

    Code Snippet

    < %@ Import Namespace="System.Data" %>   

    < %@ Import NameSpace="System.Data.OleDb" %>   

     

    <html>

    <script laguage="VB" runat="server">   

    Dim myConnection As OleDbConnection    

    Dim myCommand As OleDbCommand   

     

    sub page_load(sender as Object,e as EventArgs)

      dim dbname as string   

      dbname=server.mappath("authors.mdb")   

      myConnection = New OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="&dbname )   

      myConnection.Open()   

      la1.text="Connection Opened!"    

     

      myCommand = New OleDbCommand( "Insert INTO Authors(Authors,country) Values('Simson','usa')", myConnection )     

      myCommand.ExecuteNonQuery()   

      la2.text="New Record Inserted!" 

     

    myCommand = New OleDbCommand( "UPDATE Authors SET Authors='Bennett' WHERE Authors = 'Simson'", myConnection )   

    myCommand.ExecuteNonQuery()   

    la3.text="Record Updated!"    

     

    myCommand = New OleDbCommand( "DELETE FROM Authors WHERE Authors = 'David'", myConnection )   

    myCommand.ExecuteNonQuery()   

    la4.text="Record Deleted!"    

     

    myCommand = New OleDbCommand( "select * FROM Authors", myConnection )   

     MyDataGrid.DataSource=myCommand.Executereader()   

    MyDataGrid.DataBind()    

     

    end sub        

    < html> 

     

     

     

     

    找本入門的書來看看,應該都有寫。這部份滿簡單的。

     

    2008年7月1日 上午 09:25

所有回覆

  • 無法連結資料庫的意思。 Connection DB error

     

    我看您似乎是用 .NET,但卻要寫ASP的語法?

     

    如果您的IIS版本較新,例如是Win2003(含)以後的版本。

    要使用ASP,要手動開啟(預設IIS未支援)。

     

    再來,檢查一下這個access檔案是否存在?是否放在適當的目錄中?

    權限是否打開(不然的話,Internet用戶無法存取它)

     

    另外,建議您把 sql這個變數名稱,改成 connstr之類的。

    sql會讓人家認為是 T-SQL指令。

     

    2008年7月1日 上午 08:45
  •  

    那应怎么写?

     

    2008年7月1日 上午 08:49
  • Set Conn = Server.CreateObject("ADODB.Connection")

    conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("\db\sample.mdb")

     

    關於ASP語法,搭配Access。這篇寫的滿清楚

    http://www.perfume.com.tw/newtalk/forum_posts.asp?TID=113&PN=1

     

     

    修改 Access檔案,在IIS裡面的「權限」的話,這篇很清楚。

    http://neural.cs.nthu.edu.tw/jang/courses/cs3431/student/accessErrorFaq_916718/

     

     

    希望對您有幫助

     

     

    您似乎要在 IIS + .NET的環境下,寫舊版的ASP嗎?
    看您一開始發問的錯誤訊息,是 .NET環境提供的錯誤訊息呢

     

     

    2008年7月1日 上午 09:13
  •  

    可我用的是ASP.Net
    2008年7月1日 上午 09:15
  • Server.CreateObject("ADODB.Connection")
    是ASP在用的的

    若為ASP.NET 2.0
    請改用 SqlDataSaource 或 System.Data.SqlClient 裡的那些

    或是
    http://www.player.idv.tw/prog/index.php?title=ClassSQL
    2008年7月1日 上午 09:20
  • 找一下關鍵字 「ASP.NET Access」,有很多入門的文章可參考。

    http://www.builder.com.cn/2007/0924/521280.shtml

     

    Code Snippet

    < %@ Import Namespace="System.Data" %>   

    < %@ Import NameSpace="System.Data.OleDb" %>   

     

    <html>

    <script laguage="VB" runat="server">   

    Dim myConnection As OleDbConnection    

    Dim myCommand As OleDbCommand   

     

    sub page_load(sender as Object,e as EventArgs)

      dim dbname as string   

      dbname=server.mappath("authors.mdb")   

      myConnection = New OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source="&dbname )   

      myConnection.Open()   

      la1.text="Connection Opened!"    

     

      myCommand = New OleDbCommand( "Insert INTO Authors(Authors,country) Values('Simson','usa')", myConnection )     

      myCommand.ExecuteNonQuery()   

      la2.text="New Record Inserted!" 

     

    myCommand = New OleDbCommand( "UPDATE Authors SET Authors='Bennett' WHERE Authors = 'Simson'", myConnection )   

    myCommand.ExecuteNonQuery()   

    la3.text="Record Updated!"    

     

    myCommand = New OleDbCommand( "DELETE FROM Authors WHERE Authors = 'David'", myConnection )   

    myCommand.ExecuteNonQuery()   

    la4.text="Record Deleted!"    

     

    myCommand = New OleDbCommand( "select * FROM Authors", myConnection )   

     MyDataGrid.DataSource=myCommand.Executereader()   

    MyDataGrid.DataBind()    

     

    end sub        

    < html> 

     

     

     

     

    找本入門的書來看看,應該都有寫。這部份滿簡單的。

     

    2008年7月1日 上午 09:25
  • 谢谢!

    2008年7月1日 上午 09:27