2013-08-24 2 views
0

У меня есть 2 таблицы, продукты и автор, таблица автора имеет столбец, который относится к таблице продуктов по идентификатору, поэтому я сделал инструкцию select, чтобы получить правильные строки на основе идентификаторов , Однако в таблице автора могут отсутствовать данные и, следовательно, нет идентификатора таблицы продуктов. Если это так, то информация из продукта не отображается.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. –

Смежные вопросы