0

我的程序是“搜索员工” 在 Visual Studio 2008 中使用 VB Web 应用程序,我在 Microsoft Access 中使用数据库

我在我的电脑上编程它可以 100% 工作。但是当我将项目移动到其他计算机以上传到服务器时,它有错误

ODBC--连接到“SQL ServerWDT02418\SQLEXPRESS”失败。

WDT02418 是我的电脑的名称。但是我在其他计算机上运行该项目。

我像这样使用数据库连接

Function CountEmpData(ByVal EN As String, ByVal Area As String, ByVal Product_type As String) As Integer
    Dim CounterEmpData As Integer

    Try

        Dim ole As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\PROJECT_WD\e-OJT_Project6\Database\Employee.mdb")
        ole.Open()
        Dim sqlCommand As String = "SELECT COUNT(*) AS 'Counter' FROM Employee WHERE (Emp_ID LIKE '%" + EN + "%') AND (Area LIKE '%" + Area + "%') AND (Product_Type LIKE '%" + Product_type + "%')"
        Dim myCommand As New OleDbCommand(sqlCommand, ole)
        Dim myReader As OleDbDataReader = myCommand.ExecuteReader()
        While myReader.Read()
            CounterEmpData = myReader.GetInt32(0)
        End While
        myReader.Close()
        ole.Close()

    Catch ex As Exception

    End Try

    Return CounterEmpData
End Function

它在线路上警告错误

Dim myReader As OleDbDataReader = myCommand.ExecuteReader()

有人请帮助我!

4

1 回答 1

0

上面的代码中没有任何特定于计算机的内容,除了 Access 文件的位置,但没有它不会产生上面的错误。所以我认为问题一定出在你的 .mdb 数据库中,我怀疑问题在于它包含链接到 SQL Server 的表,只有在你的机器上运行的代码才能访问。

我将通过使用 Microsoft Access UI 打开另一台计算机上的访问数据库,打开 Employee 表并查看是否仍然出现错误来解决此问题。如果你这样做了,你就会知道出错的是 Access 数据库而不是你的代码。我猜此时 SQL Server Express 上没有设置远程连接(请参阅此处了解如何启用远程连接),或者您计算机上的某些防火墙规则阻止其他计算机连接到 SQL Server Express 实例,所以我会打开 Windows 防火墙并允许 SQL Server Express 正在侦听的端口上的入站流量,或者(更好地)将 SQL Server 从本地计算机移动到专用的开发服务器。

于 2013-07-15T13:34:42.077 回答