下面是我的代码:
Dim conn As New SqlConnection
        conn.ConnectionString = System.Configuration.ConfigurationSettings.AppSettings("Sqlconn")
        conn.Open()
        Dim cmd As New SqlCommand
        cmd.Connection = conn
        Dim Str_ygzyd As String
        Str_ygzyd = "select K.Co_Num, K.Co_line, J.job,J.suffix, J.item, J.ord_num, J.ord_line"
        Str_ygzyd = Str_ygzyd + " FROM KDcoitem K INNER JOIN  job J ON K.Old_Co_Num = J.ord_num AND K.Old_Co_Line = J.ord_line"       
        cmd.CommandText = Str_ygzyd       
        Dim reader As SqlDataReader = cmd.ExecuteReader
每次运行到(Dim reader As SqlDataReader = cmd.ExecuteReader)时就出现下面的错误,我的数据库中是有这两个表的
Invalid object name 'KDcoitem'.
Invalid object name 'job'.

解决方案 »

  1.   

    你用的sqlserver吧?
    你检查一下表的“所有者”,如果表的所有者不是"dbo"话,你的语句中的表需要用全路径,就是要带所有者的,如:abc.KDcoitem。
      

  2.   

    ********时就出现下面的错误.............
    是什么错误?
    J ON K.Old_Co_Num = J.ord_num AND K.Old_Co_Line = J.ord_line"  
    另外你的表怎么有两个链接等于,这样做容易出现问题。建议job表增加一个流水号。用一个流水号去做外键保存到'KDcoitem'表中,。这样就只有一个等于了。好处是不会出现错误,链接效率高,还有节省存储空间。('KDcoitem'表中原来保存两个字段,现在仅保存一个了)
         
      

  3.   

    try..Str_ygzyd = Str_ygzyd + " FROM KDcoitem K INNER JOIN  job J ON (K.Old_Co_Num = J.ord_num AND K.Old_Co_Line = J.ord_line)"