【问题标题】:Retrieving data from SQL Server error从 SQL Server 错误中检索数据
【发布时间】:2013-07-09 19:01:02
【问题描述】:

我已连接到 Access 2010 数据库中的 SQL 服务器。但我需要从服务器检索一个字符串。当我运行程序时,我收到错误消息 Invalid object name 'dbo_b_Pulp_PI_Forte'. 当程序点击 run.ExecuteReader() 时。我找不到问题。这是我的代码:

    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()

【问题讨论】:

  • dbo_b_Pulp_PI_Forte 应该是dbo.b_Pulp_PI_Forte
  • 你为什么这么认为? bdo_b_Pulp_PI_Forte 是我在数据库中的表名。
  • dbo.是现代版本的 sql server 中 db 的默认模式,因此这似乎是可能的问题。

标签: .net sql sql-server vb.net ms-access-2010


【解决方案1】:

改变这个:

   '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 是架构名称,应与表名称用句点分隔

【讨论】:

  • 这解决了我的问题。虽然它稍后在我的代码中显示了一个不同的问题,但解决了我遇到的问题。谢谢。
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2011-11-05
  • 1970-01-01
  • 2011-06-28
  • 1970-01-01
相关资源
最近更新 更多