2013-08-24 108 views
0

我有2個表,產品和作者,作者表有一個與產品表相關的列,所以我在下面做了一個select語句,根據這個ID獲取正確的行。但是,作者表可能沒有任何數據,因此沒有產品表的ID。如果是這種情況,則產品信息不會顯示出來。OLEDBCommand處理丟失的數據庫行

所以我的問題是我該如何處理?

Dim ID As String = Request("id") 
    If String.IsNullOrEmpty(ID) Then 
     Response.Redirect("/Default.aspx") 
    End If 

    Try 
     Using conn As New OleDbConnection(strcon) 
      conn.Open() 
      Dim cmd As String = "SELECT * FROM tblProducts, tblPrdAuthor " & _ 
           "WHERE tblProducts.ID = " & ID & " AND tblPrdAuthor.paPrdID = tblProducts.ID" 
      Using da As New OleDbDataAdapter(cmd, conn) 
       Dim ds As New DataSet() 
       da.Fill(ds) 

       'Bind to the repeater 
       rptProduct.DataSource = ds 
       rptProduct.DataBind() 
      End Using 
     End Using 
    Catch ex As Exception 
     Throw ex 
    End Try 

謝謝!

回答

0
Select * from table1 as A left outer join table2 as B on (A.id=B.id) where a.id=101 and b.pid=102 
+0

也許我沒有正確解釋自己。 blPrdAuthor.paPrdID可能不存在於某些產品的第二張表格中,但對於其他產品信息將存在於該表格中,因此我想要一種方法來顯示產品表格中的信息(如果沒有相關的ID作者表 –

+0

使用左邊加入,如果存在則採取其他方式不採取 – SK2185

+0

非常感謝!我最初嘗試了這個,但是用了INNER JOIN。 –