侠盗车手攻略
          System.Data.OleDb.OleDbException: 未指定错误
症状
当您在 Microsoft Framework 1.0 升级到版本 1.1,然后您运行 Microsoft ASP.NET 应用程序时模拟帐户来访问 M...
当您在 Microsoft Framework 1.0 升级到版本 1.1,然后您运行 Microsoft ASP.NET 应用程序时模拟帐户来访问 Microsoft Access 数据库,可能会收到以下错误消息:
服务器错误 / ApplicationName 应用程序。

未指定的错误

说明: 在当前 web 请求的执行过程中发生了未处理的异常。请查看堆栈跟踪以确定有关错误以及来源于代码中的详细信息。货腰

异常详细信息: System.Data.OleDb.OleDbException: 未指定错误
回到顶端
原因
在 Framework 1.0 中,ASP.NET 应用程序使用在 TEMP 环境变量存储临时文件被指定的文件夹。在 Framework
在 Framework 1.0 中,ASP.NET 应用程序使用在 TEMP 环境变量存储临时文件被指定的文件夹。在 Framework 1.1,ASP.NET 应用程序,请使用写入临时文件的本地 ASPNET 帐户配置文件文件夹。此配置文件文件夹是 C:\Documents 和 Settings\ ServerName \ASPNET\TEMP。该 ASPNET 帐户具有写入到此文件夹的权限。

但是,如果 ASP.NET 应用程序使用模拟,被模拟的帐户可能没有权限将此文件夹中写入临时文件。因此,Web 服务器升级为 Framework 1.1 时, 应用程序可能与本文"症状"一节中描述的错误消息失败。
回到顶端
解决方案
若要解决此问题,分配读取和写入 C:\Documents 和 Settings\ ServerName \ASPNET 文件夹上模拟的帐户的权限。若要这样做,请...
若要解决此问题,分配读取和写入 C:\Documents 和 Settings\ ServerName \ASPNET 文
件夹上模拟的帐户的权限。若要这样做,请按照下列步骤操作:
1. 在 Windows 资源管理器中,到 C:\Document settings\ ServerName \ASPNET\local 设置文件夹。
2. 用鼠标右键单击 Temp 文件夹。
3. 单击 属性,然后单击 安全
4. 单击 添加,在 选择用户或组 框中键入 ServerName \ASPNET,然后单击 确定
唐家三少的书5. 请确保已选中 完全控制 复选框,然后单击 确定
回到顶端
状态
此行为是设计使然。
此行为是设计使然。
回到顶端
更多信息
创建新的 ASP.NET Web 应用程序 启动 Microsoft Visual Studio。通过使用 Microsoft Visual C#.ne...
创建新的 ASP.NET Web 应用程序
1. 启动 Microsoft Visual Studio。
2. 通过使用 Microsoft Visual C# 或 $ Microsoft Visual Basic 中创建新的 ASP.NET Web 应用程序。作为 WebApp1 命名该项目。默认状态下,创建 WebForm1.aspx。
3. 双击 WebForm1.aspx。显示代码隐藏页。
4. 代码隐藏类文件的开头添加以下命名空间引用:

visual C# 代码
using System.Data.OleDb;
Visual Basic 代码
Imports System.Data.OleDb
5. 用下面的代码替换 个性签名图Page_Load 事件处理程序:

visual C# 代码
6. private void Page_Load(object sender, System.EventArgs e)
7. {
8. // Use a string variable to hold the ConnectionString property.
9. string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;"
10.         + "Data Source=C:\\Program Files\\Microsoft Visual Studio\\VB98\\NWIND.MDB";   
11.
12. OleDbConnection cn = new OleDbConnection(connectString);
13. //Open the connection.
14. cn.Open();
15.
16. // Use a variable to hold the SQL statement.
17. string selectString = "SELECT CustomerID, ContactName FROM Customers";
18.
19. // Create an OleDbCommand object.
20. OleDbCommand cmd = new OleDbCommand(selectString,cn);
21.
22. OleDbDataReader reader = cmd.ExecuteReader();
23.
24. while(reader.Read())
25. {   
26.   Response.Write(reader["CustomerID"].ToString()+ " : "+reader["ContactName"].ToString()+"<br>");
27. }
28. // Close the reader and the related connection.
yif魔幻整容前
29. reader.Close();
30. cn.Close();
31. }
Visual Basic 代码
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
读取配置文件失败
        'Use a string variable to hold the ConnectionString property.
        Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                    "Data Source=C:\\Program Files\\Microsoft Visual Studio\\VB98\\NWIND.MDB"
   
        Dim cn As OleDbConnection = New OleDbConnection(connectString)
        'Open the connection.
        cn.Open()
        'Use a variable to hold the SQL statement.
        Dim selectString As String = "SELECT CustomerID, ContactName,  FROM Customers"
     
        Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)
        Dim reader As OleDbDataReader = cmd.ExecuteReader()
        While (reader.Read())
            Response.Write(reader("CustomerID").ToString() + " : " + reader("ContactName").ToString() + "<br>")
        End While
        'Close the reader and the related connection.
        reader.Close()
        cn.Close()
    End Sub
注意 修改 connectString 变量开头的代码以指向您的罗斯文数据库的位置。
——————————————————————————————————————————————————————————————————————————————————————OleDBConnection.Open未指定错误的处理
使用ADO操作Excel文件,在本地WinForm下一切正常,但是在Web上使用时,当OleDBConnection.Open 时出现:System.Data.OleDb.OleDbException 未指定错误 的处理方法,经过摸索,到的解决方法如下:
修改C:/Windows/Temp目录和C:/Document And Settings/ASPNet目录的权限,将AspNet,EveryOne的权限改为完全控制问题解决。