Ho una certa tabella A con chiave ID. Volevo trovare tutte le tabelle legate ad A, ossia, quelle che sono legate tramite chiave esterna alla tabella A.
Mi date una mano? (meglio due)
![]()
Ho una certa tabella A con chiave ID. Volevo trovare tutte le tabelle legate ad A, ossia, quelle che sono legate tramite chiave esterna alla tabella A.
Mi date una mano? (meglio due)
![]()
Pietro
in attesa di un aiutomi sono aiutato da solo
![]()
nella pagina metto:
<asp:TreeView ID="TreeView1" runat="server" ShowLines="True" AutoGenerateDataBindings="false" ShowExpandCollapse="true"></asp:TreeView>
codice
codice:Protected Sub Button8_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button8.Click Dim conn As o.OracleConnection = Nothing Try conn = New o.OracleConnection(gl.StringaConnessione) conn.Open() BindTreeView(conn) Catch er As Exception l.MessaggioErrore(er) Finally If conn IsNot Nothing Then conn.Close() End Try End Sub Protected Sub BindTreeView(ByVal conn As o.OracleConnection) Me.TreeView1.Nodes.Clear() Dim dt As DataTable = conn.GetSchema("ForeignKeys") 'elenco delle tabelle Dim nodo As New TreeNode("text", "value") nodo.SelectAction = TreeNodeSelectAction.Expand nodo.Collapse() Me.TreeView1.Nodes.Add(nodo) PopolaTreeView("value", dt, nodo) End Sub Private Sub PopolaTreeView(ByVal id As String, ByVal dt As DataTable, ByVal nodo As TreeNode) Dim rows As DataRow() = dt.Select(String.Format("PRIMARY_KEY_OWNER = 'PIETRO' AND PRIMARY_KEY_TABLE_NAME = '{0}'", id), "FOREIGN_KEY_TABLE_NAME") For i As Integer = 0 To rows.Length - 1 Dim childNode As New TreeNode(rows(i).Item("FOREIGN_KEY_TABLE_NAME").ToString(), CStr(rows(i)("PRIMARY_KEY_TABLE_NAME"))) childNode.SelectAction = TreeNodeSelectAction.Expand childNode.Collapse() nodo.ChildNodes.Add(childNode) PopolaTreeView(CStr(rows(i)("FOREIGN_KEY_TABLE_NAME")), dt, childNode) Next End Sub
Pietro
Se dichiari una connection a livello di classe, utilizzabile da qualsiasi metodo della classe, dovresti poi chiuderla non dentro un singolo metodo (il page_load) ma nell'evento Unload della pagina stessa. Cosi, se un domani utilizzi la connection in un altro punto, non rischi di trovartela chiusa.
General Page Life-cycle Stages
Unload ...use this event to do final cleanup work, such as closing open files and database connections, or finishing up logging or other request-specific tasks.
http://msdn.microsoft.com/en-us/library/ms178472.aspx
Saluti a tutti
Riccardo
:master: Certo, hai ragione![]()
Però conta questo:
1) apro la connessione e la chiudo in una procedura perchè non mi serve altrove
2) questa è una pagina di studio. Mi serviva solo per cercare di trovare le dipendenze di una tabella coi mezzi del framework. Una pagina reale, eventualmente, sarà più curata.
Ciao.![]()
Pietro
anzi, visto che ti conosco per fama, non è che mi potresti aiutare a migliorarlo.
Ad esempio, passando il mouse sopra una tabella, mi piacerebbe che si aprisse un tooltip col nome delle chiavi![]()
ps. puoi parlare pure in c#, è la mia seconda lingua![]()
Pietro
hai provato a settare la proprietà tooltip sul nodo prima di aggiungerlo?
Saluti a tutti
Riccardo
:quote: Non è questo il problema, ma come maneggiare GetSchema :master:Originariamente inviato da riccardone
hai provato a settare la proprietà tooltip sul nodo prima di aggiungerlo?
![]()
Pietro
un link utile
http://msdn.microsoft.com/en-us/library/ms254969(VS.80).aspx
Saluti a tutti
Riccardo
Originariamente inviato da riccardone
un link utile
http://msdn.microsoft.com/en-us/library/ms254969(VS.80).aspx
Grazie, ciao![]()
Pietro