2013-07-09 145 views
-1

我已連接到Access 2010數據庫中的SQL服務器。但我需要從服務器中檢索一個字符串。當我運行該程序時,我收到錯誤消息無效的對象名稱'dbo_b_Pulp_PI_Forte'。當程序命中run.ExecuteReader()。我找不到問題。這裏是我的代碼:從SQL Server中檢索數據錯誤

Dim myCmd As String 
    Dim strConn1 As New OleDb.OleDbConnection 
    Dim CmdCommand As New OleDb.OleDbCommand 
    'Connection string for SQL Server. 
    strConn1.ConnectionString = "Provider=SQLOLEDB;Server=THIPSQLW01;Database=wss_Test;Uid=baletrack;Pwd=BaleTrack;" 

    'SQL statement for SQL Server. 
    myCmd = "SELECT TOP 1 * FROM dbo_b_Pulp_PI_Forte WHERE Mill = '850' and Pulp_Line_id = '" & stBaleLine & "' ORDER BY keyprinter_datetime DESC, bale_id DESC" 

    'Open server. 
    strConn1.Open() 

    Dim run = New OleDb.OleDbCommand 
    'Using the SQL statement in the SQL server. 
    run = New OleDbCommand(myCmd, strConn1) 
    run.ExecuteReader() 
+3

'dbo_b_Pulp_PI_Forte'應該可能是'dbo.b_Pulp_PI_Forte' –

+0

你爲什麼這麼想? 'bdo_b_Pulp_PI_Forte'是數據庫中我的表的名稱。 –

+3

dbo。是現代版本的sql server中db的默認模式,所以它似乎是可能的問題。 –

回答

3

更改此:

'SQL statement for SQL Server. 
     myCmd = "SELECT TOP 1 * FROM dbo_b_Pulp_PI_Forte 
     WHERE Mill = '850' and Pulp_Line_id = '" & stBaleLine & "' 
     ORDER BY keyprinter_datetime DESC, bale_id DESC" 

'SQL statement for SQL Server. 
     myCmd = "SELECT TOP 1 * FROM dbo.b_Pulp_PI_Forte 
     WHERE Mill = '850' and Pulp_Line_id = '" & stBaleLine & "' 
     ORDER BY keyprinter_datetime DESC, bale_id DESC" 

DBO是架構名稱,應該用句號從表名分離

+0

這解決了我的問題。雖然它後來在我的代碼中顯示了一個不同的問題,但解決了我被困住的問題。謝謝。 –