2013-07-09 144 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

这解决了我的问题。虽然它后来在我的代码中显示了一个不同的问题,但解决了我被困住的问题。谢谢。 –